From 1637e363df9b41a421db5cb97f7969ff7c37602f Mon Sep 17 00:00:00 2001 From: dffdff2423 Date: Thu, 24 Nov 2022 13:50:56 -0600 Subject: [PATCH 1/2] Fix unexpected argument panic in `pest_debugger` Fixes a panic when you provide the debugger executable with an argument it does not expect. It now exits gracefully. before: ``` $ pest_debugger random args thread 'main' panicked at 'internal error: entered unreachable code', /home/USERNAME/.cargo/registry/src/github.com-1ecc6299db9ec823/pest_debugger-2.5.0/src/main.rs:259:22 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ``` after: ``` $ pest_debugger random args Error: unexpected argument `random` Error: unexpected argument `args` ``` --- debugger/src/main.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/debugger/src/main.rs b/debugger/src/main.rs index 59945542..078d1999 100644 --- a/debugger/src/main.rs +++ b/debugger/src/main.rs @@ -198,6 +198,7 @@ impl Default for CliArgs { }; let args = std::env::args(); let mut iter = args.skip(1); + let mut unexpected_arg = false; while let Some(arg) = iter.next() { match arg.as_str() { "-g" | "--grammar" => { @@ -256,9 +257,15 @@ impl Default for CliArgs { ); std::process::exit(0); } - _ => unreachable!(), + arg => { + eprintln!("Error: unexpected argument `{}`", arg); + unexpected_arg = true; + }, } } + if unexpected_arg { + std::process::exit(1); + } result } } From 972a62d112d1721b862da034e14fae0b32758f6d Mon Sep 17 00:00:00 2001 From: Tomas Tauber <2410580+tomtau@users.noreply.github.com> Date: Fri, 25 Nov 2022 08:12:38 +0800 Subject: [PATCH 2/2] Update debugger/src/main.rs --- debugger/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debugger/src/main.rs b/debugger/src/main.rs index 078d1999..7ac6cc07 100644 --- a/debugger/src/main.rs +++ b/debugger/src/main.rs @@ -260,7 +260,7 @@ impl Default for CliArgs { arg => { eprintln!("Error: unexpected argument `{}`", arg); unexpected_arg = true; - }, + } } } if unexpected_arg {