diff --git a/source/mijin/io/process.cpp b/source/mijin/io/process.cpp index de3ceaa..302bf22 100644 --- a/source/mijin/io/process.cpp +++ b/source/mijin/io/process.cpp @@ -168,12 +168,17 @@ std::string shellEscape(const std::string& arg) MIJIN_NOEXCEPT return oss.str(); } -std::string makeShellCommand(const std::vector& args) MIJIN_NOEXCEPT +std::string makeShellCommand(std::span args) MIJIN_NOEXCEPT { + (void) args; + MIJIN_ERROR("TBD"); + return {}; +#if 0 using namespace mijin::pipe; return args | Map(&shellEscape) | Join(" "); +#endif } } // namespace mijin #endif // MIJIN_TARGET_OS == MIJIN_OS_LINUX || MIJIN_TARGET_OS == MIJIN_OS_OSX diff --git a/source/mijin/io/process.hpp b/source/mijin/io/process.hpp index f150f09..1a2f933 100644 --- a/source/mijin/io/process.hpp +++ b/source/mijin/io/process.hpp @@ -3,7 +3,7 @@ #if !defined(MIJIN_IO_PROCESS_HPP_INCLUDED) #define MIJIN_IO_PROCESS_HPP_INCLUDED 1 -#include +#include #include "./stream.hpp" #include "../internal/common.hpp" @@ -22,7 +22,7 @@ public: inline StreamError open(const std::string& command, FileOpenMode mode_) { return open(command.c_str(), mode_); } - inline StreamError open(const std::vector& args, FileOpenMode mode_); + inline StreamError open(std::span args, FileOpenMode mode_); int close(); [[nodiscard]] inline bool isOpen() const { return handle != nullptr; } @@ -36,13 +36,19 @@ public: StreamFeatures getFeatures() override; }; -[[nodiscard]] std::string shellEscape(const std::string& arg) MIJIN_NOEXCEPT; -[[nodiscard]] std::string makeShellCommand(const std::vector& args) MIJIN_NOEXCEPT; +[[nodiscard]] std::string shellEscape(std::string_view arg) MIJIN_NOEXCEPT; +[[nodiscard]] std::string makeShellCommand(std::span args) MIJIN_NOEXCEPT; -StreamError ProcessStream::open(const std::vector& args, FileOpenMode mode_) +StreamError ProcessStream::open(std::span args, FileOpenMode mode_) { return open(makeShellCommand(args), mode_); } + +template +std::array makeSVList(TTypes&&... args) +{ + return std::array{std::string_view(std::forward(args))...}; +} } #endif // MIJIN_IO_PROCESS_HPP_INCLUDED