diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-11-13 23:42:46 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-11-14 00:18:49 +0100 |
| commit | e1cbceca253ebf16f49e5bc78e3f1d0157c37bee (patch) | |
| tree | 15aef0a5d945054ddecc0f72fb35534e22ba4b53 | |
| parent | e73bdba5ec83e63dd69bd506884095b78e5dde75 (diff) | |
Fix failure to load DCPs from SMB shares (#2123).
| -rw-r--r-- | src/lib/cross_windows.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/cross_windows.cc b/src/lib/cross_windows.cc index b3d9a1558..a425186f1 100644 --- a/src/lib/cross_windows.cc +++ b/src/lib/cross_windows.cc @@ -255,14 +255,17 @@ fix_long_path (boost::filesystem::path long_path) { using namespace boost::filesystem; - path fixed = "\\\\?\\"; - if (boost::algorithm::starts_with(long_path.string(), fixed.string())) { + if (boost::algorithm::starts_with(long_path.string(), "\\\\")) { + /* This could mean it starts with \\ (i.e. a SMB path) or \\?\ (a long path) + * or a variety of other things... anyway, we'll leave it alone. + */ return long_path; } /* We have to make the path canonical but we can't call canonical() on the long path * as it will fail. So we'll sort of do it ourselves (possibly badly). */ + path fixed = "\\\\?\\"; if (long_path.is_absolute()) { fixed += long_path.make_preferred(); } else { |
