diff -U2 -r /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd/FS.cpp /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd/FS.cpp --- /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd/FS.cpp 2026-08-23 18:58:28.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd/FS.cpp 2026-08-23 18:40:07.000000000 +0000 @@ -275,4 +275,12 @@ } + std::string CreatePath (const std::vector& subdirs) + { + fs_lib::path ret; + for (const auto& it: subdirs) + ret /= it; + return ret.string (); + } + bool Remove(const std::string & path) { diff -U2 -r /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd/FS.h /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd/FS.h --- /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd/FS.h 2026-08-23 18:58:28.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd/FS.h 2026-08-23 18:40:07.000000000 +0000 @@ -164,4 +164,6 @@ } + std::string CreatePath (const std::vector& subdirs); + /** * @brief Get path relative to datadir diff -U2 -r /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd_client/Torrents.cpp /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd_client/Torrents.cpp --- /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd_client/Torrents.cpp 2026-08-23 18:58:28.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd_client/Torrents.cpp 2026-08-23 18:40:07.000000000 +0000 @@ -379,5 +379,5 @@ return ParseList (buf, [this](std::string_view file)->size_t { - std::filesystem::path filePath; size_t fileLength = 0; + std::string filePath; size_t fileLength = 0; auto len = ParseDictionary (file, [&filePath, &fileLength](std::string_view key, std::string_view value)->size_t { @@ -385,7 +385,5 @@ { auto [subdirs, l] = ParseStringList (value); - if (l) - for (const auto& it: subdirs) - filePath /= it; + if (l) filePath = i2p::fs::CreatePath (subdirs); return l; }