Fix handling of single letter shares in UNC paths in wxFileName

This comes at the price of breaking compatibility and returning
"\\share" rather than just "share" from wxFileName::GetVolume() for the
UNC paths. This breakage seems justified because it is required in order
to allow application code to distinguish between paths "x:\foo" and
"\\x\foo", which was previously impossible as GetVolume() returned just
"x" in both cases.

Document this change, adjust the existing checks for the new GetVolume()
semantics and add a new test which passes now, but didn't pass before.

Closes #19255.

This commit is best viewed ignoring whitespace-only changes.
This commit is contained in:
Vadim Zeitlin 2021-09-15 01:51:35 +01:00
parent 7e4b54a00a
commit 549e0a59b1
5 changed files with 155 additions and 98 deletions

View file

@ -133,6 +133,12 @@ Changes in behaviour not resulting in compilation errors
bitmaps in wxMSW if the corresponding Set had been called before, as in the
other ports, instead of returning the normal bitmap as fallback in this case.
- wxFileName::GetVolume() now returns "\\share" and not just "share" for the
UNC paths (i.e. \\share\path\on\remote\server) and "\\?\Volume{GUID}" for the
volume GUID paths rather than just "Volume{GUID}" as before. This allows
distinguishing them from the drive letters, even for single letter network
share name.
Changes in behaviour which may result in build errors
-----------------------------------------------------