Files
openwrt-packages/libs/ibrcommon/patches/001-fix-build-with-musl.patch
Rosen Penev bfb5d820bf ibrcommon: remove basename
Can be replaced with regular C++.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-04-19 14:18:45 -07:00

34 lines
797 B
Diff

--- a/ibrcommon/data/File.cpp
+++ b/ibrcommon/data/File.cpp
@@ -35,10 +35,6 @@
#include <cerrno>
#include <fstream>
-#if !defined(HAVE_FEATURES_H) || defined(ANDROID)
-#include <libgen.h>
-#endif
-
#ifdef __WIN32__
#include <io.h>
#define FILE_DELIMITER_CHAR '\\'
@@ -225,14 +221,11 @@ namespace ibrcommon
std::string File::getBasename() const
{
-#if !defined(ANDROID) && defined(HAVE_FEATURES_H)
- return std::string(basename(_path.c_str()));
-#else
- char path[_path.length()+1];
- ::memcpy(&path, _path.c_str(), _path.length()+1);
-
- return std::string(basename(path));
-#endif
+ size_t found = _path.find_last_of('/');
+ if (found != std::string::npos)
+ return _path.substr(found + 1);
+ else
+ return _path;
}
File File::get(const std::string &filename) const