vim-patch:8.2.0985: simplify() does not remove slashes from "///path"

Problem:    Simplify() does not remove slashes from "///path".
Solution:   Reduce > 2 slashes to one. (closes vim/vim#6263)

fdcbe3c3fe

Omit Test_readdirex() change: changed again in patch 9.0.0323.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq
2024-10-13 18:31:36 +08:00
parent 2d24558c28
commit 8c8c6fb05a
2 changed files with 13 additions and 0 deletions

View File

@@ -1538,6 +1538,13 @@ void simplify_filename(char *filename)
} while (vim_ispathsep(*p));
}
char *start = p; // remember start after "c:/" or "/" or "///"
#ifdef UNIX
// Posix says that "//path" is unchanged but "///path" is "/path".
if (start > filename + 2) {
STRMOVE(filename + 1, p);
start = p = filename + 1;
}
#endif
do {
// At this point "p" is pointing to the char following a single "/"