From a5576ad22532b9243c1e34e8ba9336ba6f7eea65 Mon Sep 17 00:00:00 2001 From: dusk Date: Sat, 29 Mar 2025 14:09:40 +0900 Subject: [PATCH] fix(command_parser): don't return a command early if there is still input left --- crates/command_parser/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/command_parser/src/lib.rs b/crates/command_parser/src/lib.rs index 460a556a..1b411b56 100644 --- a/crates/command_parser/src/lib.rs +++ b/crates/command_parser/src/lib.rs @@ -109,8 +109,8 @@ pub fn parse_command( println!("flag matched {matched_flag:?}"); raw_flags.push((current_token_idx, matched_flag)); } - // if we have a command, stop parsing and return it - if let Some(command) = local_tree.command() { + // if we have a command, stop parsing and return it (only if there is no remaining input) + if current_pos >= input.len() && let Some(command) = local_tree.command() { // match the flags against this commands flags let mut flags: HashMap> = HashMap::new(); let mut misplaced_flags: Vec = Vec::new();