From 16def040af4c9cf60170f741f417a422fbafafd2 Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Fri, 19 Jun 2020 16:32:19 +0430 Subject: [PATCH] Shell: Do not try to recreate a command from a list of args in time Shell already provides a run_command(AST::Command) which can be constructed from a list of arguments, use that instead. --- Shell/Builtin.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Shell/Builtin.cpp b/Shell/Builtin.cpp index 4be6e4ff4f..5a3928fde9 100644 --- a/Shell/Builtin.cpp +++ b/Shell/Builtin.cpp @@ -654,15 +654,18 @@ int Shell::builtin_time(int argc, const char** argv) if (!parser.parse(argc, const_cast(argv), false)) return 1; - StringBuilder builder; - builder.join(' ', args); + AST::Command command; + for (auto& arg : args) + command.argv.append(arg); Core::ElapsedTimer timer; timer.start(); - // TODO: Exit code - run_command(builder.string_view()); + auto job = run_command(command); + if (!job) + return 1; + block_on_job(job); fprintf(stderr, "Time: %d ms\n", timer.elapsed()); - return 0; + return job->exit_code(); } int Shell::builtin_umask(int argc, const char** argv)