From ac22e006a447aba1e5899add9f2a882a0ebd6b22 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 10 Jun 2025 08:14:03 +0300 Subject: [PATCH] Shell: Don't get stuck on broken state when failing to build command --- userspace/programs/Shell/TokenParser.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/userspace/programs/Shell/TokenParser.cpp b/userspace/programs/Shell/TokenParser.cpp index dee3cd66..28d0c41e 100644 --- a/userspace/programs/Shell/TokenParser.cpp +++ b/userspace/programs/Shell/TokenParser.cpp @@ -4,6 +4,7 @@ #include "TokenParser.h" #include +#include #include @@ -659,12 +660,13 @@ BAN::ErrorOr TokenParser::run(BAN::Vector&& tokens) { TRY(feed_tokens(BAN::move(tokens))); + BAN::ScopeGuard _([this] { + m_token_stream.clear(); + }); + auto command_tree = TRY(parse_command_tree()); const auto token_type = peek_token().type(); - while (!m_token_stream.empty()) - m_token_stream.pop(); - if (token_type != Token::Type::EOF_) return unexpected_token_error(token_type);