From 3feddbf9dadecd9e72cfb53bd51339857e9bea35 Mon Sep 17 00:00:00 2001 From: MacDue Date: Wed, 15 Mar 2023 16:59:31 +0000 Subject: [PATCH] Run: Use Core::Process::spawn() to launch commands --- Userland/Applications/Run/RunWindow.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Userland/Applications/Run/RunWindow.cpp b/Userland/Applications/Run/RunWindow.cpp index 791c54dfd0..0c02bb1600 100644 --- a/Userland/Applications/Run/RunWindow.cpp +++ b/Userland/Applications/Run/RunWindow.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -110,14 +111,12 @@ void RunWindow::do_run() bool RunWindow::run_as_command(DeprecatedString const& run_input) { - pid_t child_pid; - char const* shell_executable = "/bin/Shell"; // TODO query and use the user's preferred shell. - char const* argv[] = { shell_executable, "-c", run_input.characters(), nullptr }; - - if ((errno = posix_spawn(&child_pid, shell_executable, nullptr, nullptr, const_cast(argv), environ))) { - perror("posix_spawn"); + // TODO: Query and use the user's preferred shell. + auto maybe_child_pid = Core::Process::spawn("/bin/Shell"sv, Array { "-c", run_input.characters() }, {}, Core::Process::KeepAsChild::Yes); + if (maybe_child_pid.is_error()) return false; - } + + pid_t child_pid = maybe_child_pid.release_value(); // Command spawned in child shell. Hide and wait for exit code. int status;