aboutsummaryrefslogtreecommitdiffstats
path: root/nihil.posix/find_in_path.ccm
diff options
context:
space:
mode:
authorLexi Winter <lexi@le-fay.org>2025-07-01 17:07:04 +0100
committerLexi Winter <lexi@le-fay.org>2025-07-01 17:07:04 +0100
commit2e2d1bd3b6c7776b77c33b94f30ead89367a71e6 (patch)
tree54d37ffadf8e677938d9b7a28e4e9b71be1e75c1 /nihil.posix/find_in_path.ccm
parent36427c0966faa7aecd586b397ed9b845f18172f5 (diff)
downloadnihil-2e2d1bd3b6c7776b77c33b94f30ead89367a71e6.tar.gz
nihil-2e2d1bd3b6c7776b77c33b94f30ead89367a71e6.tar.bz2
add nihil.std
Diffstat (limited to 'nihil.posix/find_in_path.ccm')
-rw-r--r--nihil.posix/find_in_path.ccm14
1 files changed, 5 insertions, 9 deletions
diff --git a/nihil.posix/find_in_path.ccm b/nihil.posix/find_in_path.ccm
index 61df669..dabe358 100644
--- a/nihil.posix/find_in_path.ccm
+++ b/nihil.posix/find_in_path.ccm
@@ -1,19 +1,15 @@
// This source code is released into the public domain.
module;
-#include <expected>
-#include <filesystem>
-#include <optional>
-#include <ranges>
-
-#include <paths.h>
-#include <unistd.h>
+#include <unistd.h> // access()
export module nihil.posix:find_in_path;
+import nihil.std;
import nihil.error;
import :fd;
import :getenv;
+import :paths;
namespace nihil {
@@ -28,7 +24,7 @@ export [[nodiscard]] auto find_in_path(std::filesystem::path const &file, std::s
auto ret = ::access(file.string().c_str(), X_OK);
if (ret == 0)
return {std::move(file)};
- return std::unexpected(error(std::errc(errno)));
+ return std::unexpected(error(sys_error()));
};
// Absolute pathname skips the search.
@@ -59,7 +55,7 @@ export [[nodiscard]] auto find_in_path(std::filesystem::path const &file, std::s
export [[nodiscard]] auto
find_in_path(std::filesystem::path const &file) -> std::expected<std::filesystem::path, error>
{
- auto const path = getenv("PATH").value_or(_PATH_DEFPATH); // NOLINT
+ auto const path = getenv("PATH").value_or(std::string(paths::defpath)); // NOLINT
return find_in_path(file, path);
}