From 8c8c6fb05a993574abfa58784c62a1b983565785 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 13 Oct 2024 18:31:36 +0800 Subject: 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) https://github.com/vim/vim/commit/fdcbe3c3fedf48a43b22938c9331addb2f1182f1 Omit Test_readdirex() change: changed again in patch 9.0.0323. Co-authored-by: Bram Moolenaar --- src/nvim/path.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/nvim/path.c b/src/nvim/path.c index 4c16adde4c..80890acb7d 100644 --- a/src/nvim/path.c +++ b/src/nvim/path.c @@ -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 "/" -- cgit