From 11beaba9746583d3ab8e1b03ea8b9699a89d2a8f Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Mon, 16 Sep 2024 21:12:32 +0300 Subject: [PATCH] Reimplement canonical in terms of GetFinalPathNameByHandleW on Windows. This moves the common part of v3 and v4 canonical() to a separate function and changes the Windows implementation to use GetFinalPathNameByHandleW system call. As a side effect, this converts drive names to upper case, which makes paths more interoperable. Additionally, on POSIX systems, avoid adding a trailing directory separator if the input path has one (which may be the case in v4). This is consistent with libstdc++ and MSVC implementations of std::filesystem. Fixes https://github.com/boostorg/filesystem/issues/325. --- doc/release_history.html | 7 ++ src/operations.cpp | 229 +++++++++++++++++++-------------------- test/operations_test.cpp | 25 +++-- 3 files changed, 137 insertions(+), 124 deletions(-) diff --git a/doc/release_history.html b/doc/release_history.html index f1ffa34e3..6e8037221 100644 --- a/doc/release_history.html +++ b/doc/release_history.html @@ -40,6 +40,13 @@ +

1.87.0

+ +

1.86.0