From c9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c Mon Sep 17 00:00:00 2001 From: Martial Simon Date: Mon, 15 Sep 2025 01:08:27 +0200 Subject: add: graphs et rushs --- graphs/cpp/path/windows_path.cc | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 graphs/cpp/path/windows_path.cc (limited to 'graphs/cpp/path/windows_path.cc') diff --git a/graphs/cpp/path/windows_path.cc b/graphs/cpp/path/windows_path.cc new file mode 100644 index 0000000..cc94afa --- /dev/null +++ b/graphs/cpp/path/windows_path.cc @@ -0,0 +1,37 @@ +// +// Created by martial.simon on 2/25/25. +// + +#include "windows_path.hh" + +#include +WindowsPath::WindowsPath(char drive) + : Path() +{ + path_.push_back(std::string{ drive } + std::string{ ':' }); +} +std::string WindowsPath::to_string() const +{ + if (path_.empty()) + return ""; + std::ostringstream os; + os << path_[0]; + for (size_t i = 1; i < path_.size(); i++) + { + os << "\\" << path_[i]; + } + if (!final_) + os << "\\"; + return os.str(); +} +Path& WindowsPath::join(const std::string& tail, bool is_file) +{ + // :, ", |, ?, * + if (tail.find(':') != std::string::npos + || tail.find('\"') != std::string::npos + || tail.find('|') != std::string::npos + || tail.find('?') != std::string::npos + || tail.find('*') != std::string::npos) + return *this; + return Path::join(tail, is_file); +} \ No newline at end of file -- cgit v1.2.3