file_utils: define procdir

pull/1085/head
FlightlessMango 10 months ago
parent 6a63b7612b
commit f92eb8bce0

@ -13,6 +13,10 @@
namespace fs = ghc::filesystem;
#ifndef PROCDIR
#define PROCDIR "/proc"
#endif
std::string read_line(const std::string& filename)
{
std::string line;
@ -111,7 +115,7 @@ std::string read_symlink(const std::string&& link)
std::string get_exe_path()
{
return read_symlink("/proc/self/exe");
return read_symlink(PROCDIR "/self/exe");
}
std::string get_wine_exe_name(bool keep_ext)
@ -121,14 +125,14 @@ std::string get_wine_exe_name(bool keep_ext)
return std::string();
}
std::string line = read_line("/proc/self/comm"); // max 16 characters though
std::string line = read_line(PROCDIR "/self/comm"); // max 16 characters though
if (ends_with(line, ".exe", true))
{
auto dot = keep_ext ? std::string::npos : line.find_last_of('.');
return line.substr(0, dot);
}
std::ifstream cmdline("/proc/self/cmdline");
std::ifstream cmdline(PROCDIR "/self/cmdline");
// Iterate over arguments (separated by NUL byte).
while (std::getline(cmdline, line, '\0')) {
auto n = std::string::npos;
@ -185,7 +189,7 @@ std::string get_config_dir()
}
bool lib_loaded(const std::string& lib) {
fs::path path("/proc/self/map_files/");
fs::path path(PROCDIR "/self/map_files/");
for (auto& p : fs::directory_iterator(path)) {
auto file = p.path().string();
auto sym = read_symlink(file.c_str());

Loading…
Cancel
Save