diff --git a/wpiutil/src/main/native/cpp/uv/Process.cpp b/wpiutil/src/main/native/cpp/uv/Process.cpp index e87bcc3002..577896548e 100644 --- a/wpiutil/src/main/native/cpp/uv/Process.cpp +++ b/wpiutil/src/main/native/cpp/uv/Process.cpp @@ -14,55 +14,105 @@ namespace wpi { namespace uv { -ProcessOptions& ProcessOptions::StdioIgnore(size_t index) { - if (index >= m_stdio.size()) m_stdio.resize(index + 1); - m_stdio[index].flags = UV_IGNORE; - m_stdio[index].data.fd = 0; - return *this; -} - -ProcessOptions& ProcessOptions::StdioInherit(size_t index, int fd) { - if (index >= m_stdio.size()) m_stdio.resize(index + 1); - m_stdio[index].flags = UV_INHERIT_FD; - m_stdio[index].data.fd = fd; - return *this; -} - -ProcessOptions& ProcessOptions::StdioInherit(size_t index, Pipe& pipe) { - if (index >= m_stdio.size()) m_stdio.resize(index + 1); - m_stdio[index].flags = UV_INHERIT_STREAM; - m_stdio[index].data.stream = pipe.GetRawStream(); - return *this; -} - -ProcessOptions& ProcessOptions::StdioCreatePipe(size_t index, Pipe& pipe, - unsigned int flags) { - if (index >= m_stdio.size()) m_stdio.resize(index + 1); - m_stdio[index].flags = static_cast(UV_CREATE_PIPE | flags); - m_stdio[index].data.stream = pipe.GetRawStream(); - return *this; -} - -std::shared_ptr Process::Spawn(Loop& loop, const Twine& file, - char** args, - const ProcessOptions& options) { - // convert ProcessOptions to libuv structure - SmallString<128> fileBuf; +std::shared_ptr Process::SpawnArray(Loop& loop, const Twine& file, + ArrayRef