diff options
Diffstat (limited to 'src/storage/plugins')
-rw-r--r-- | src/storage/plugins/LocalStorage.cxx | 8 | ||||
-rw-r--r-- | src/storage/plugins/SmbclientStorage.cxx | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/storage/plugins/LocalStorage.cxx b/src/storage/plugins/LocalStorage.cxx index 23e87c1b5..5020a8fd6 100644 --- a/src/storage/plugins/LocalStorage.cxx +++ b/src/storage/plugins/LocalStorage.cxx @@ -68,6 +68,8 @@ public: virtual AllocatedPath MapFS(const char *uri_utf8) const override; + virtual const char *MapToRelativeUTF8(const char *uri_utf8) const override; + private: AllocatedPath MapFS(const char *uri_utf8, Error &error) const; }; @@ -130,6 +132,12 @@ LocalStorage::MapFS(const char *uri_utf8) const return MapFS(uri_utf8, IgnoreError()); } +const char * +LocalStorage::MapToRelativeUTF8(const char *uri_utf8) const +{ + return PathTraitsUTF8::Relative(base_utf8.c_str(), uri_utf8); +} + bool LocalStorage::GetInfo(const char *uri_utf8, bool follow, FileInfo &info, Error &error) diff --git a/src/storage/plugins/SmbclientStorage.cxx b/src/storage/plugins/SmbclientStorage.cxx index 8dafff082..6d61ab75e 100644 --- a/src/storage/plugins/SmbclientStorage.cxx +++ b/src/storage/plugins/SmbclientStorage.cxx @@ -69,6 +69,8 @@ public: Error &error) override; virtual std::string MapUTF8(const char *uri_utf8) const override; + + virtual const char *MapToRelativeUTF8(const char *uri_utf8) const override; }; std::string @@ -82,6 +84,12 @@ SmbclientStorage::MapUTF8(const char *uri_utf8) const return PathTraitsUTF8::Build(base.c_str(), uri_utf8); } +const char * +SmbclientStorage::MapToRelativeUTF8(const char *uri_utf8) const +{ + return PathTraitsUTF8::Relative(base.c_str(), uri_utf8); +} + static bool GetInfo(const char *path, FileInfo &info, Error &error) { |