From 043617915ed2caa55ff06d164367d2efe1446b2f Mon Sep 17 00:00:00 2001 From: momo5502 Date: Sat, 25 Jan 2025 18:07:41 +0100 Subject: [PATCH] Fix filesystem working directory --- src/windows-emulator/file_system.hpp | 9 +++++++-- src/windows-emulator/windows_path.hpp | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/windows-emulator/file_system.hpp b/src/windows-emulator/file_system.hpp index d76f3a52..c0b7c90f 100644 --- a/src/windows-emulator/file_system.hpp +++ b/src/windows-emulator/file_system.hpp @@ -8,9 +8,9 @@ class file_system { public: file_system(std::filesystem::path root, windows_path working_dir = "C:\\") - : root_(std::move(root)), - working_dir_(std::move(working_dir)) + : root_(std::move(root)) { + this->set_working_directory(std::move(working_dir)); } std::filesystem::path translate(const windows_path& win_path) const @@ -32,6 +32,11 @@ class file_system void set_working_directory(windows_path working_dir) { + if (!working_dir.is_absolute()) + { + throw std::runtime_error("Working directory is not an absolute path: " + working_dir.string()); + } + this->working_dir_ = std::move(working_dir); } diff --git a/src/windows-emulator/windows_path.hpp b/src/windows-emulator/windows_path.hpp index eaf5a940..94769552 100644 --- a/src/windows-emulator/windows_path.hpp +++ b/src/windows-emulator/windows_path.hpp @@ -211,7 +211,7 @@ class windows_path bool empty() const { - return !this->is_relative() && this->folders_.empty(); + return this->is_relative() && this->folders_.empty(); } private: