From 7f303a856ed48e696410fc58d2ed000335a02a4b Mon Sep 17 00:00:00 2001 From: Kenneth Cochran Date: Tue, 23 Feb 2021 03:22:17 -0600 Subject: [PATCH] Make sure `CurDir` is filtered out in absolutize. (#3084) * Make sure `CurDir` is filtered out in absolutize. Closes #3083 * Add test * Make sure test works on windows --- crates/nu-engine/src/filesystem/path.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/crates/nu-engine/src/filesystem/path.rs b/crates/nu-engine/src/filesystem/path.rs index d7d4df8f..efb0decb 100644 --- a/crates/nu-engine/src/filesystem/path.rs +++ b/crates/nu-engine/src/filesystem/path.rs @@ -29,7 +29,10 @@ where (absolute, relative) } else { - (relative_to.as_ref().to_path_buf(), path) + ( + relative_to.as_ref().to_path_buf(), + components.iter().collect::(), + ) } }; @@ -91,6 +94,17 @@ mod tests { ); } + #[test] + fn absolutize_with_curdir() { + let relative_to = Path::new("/foo"); + let path = Path::new("./bar/./baz"); + + assert!(!absolutize(relative_to, path) + .to_str() + .unwrap() + .contains(".")); + } + #[test] fn canonicalize_should_succeed() -> io::Result<()> { let relative_to = Path::new("/foo/bar");