From 9dcca24fb06f59aef7408efe5aa1d618fa571ba9 Mon Sep 17 00:00:00 2001 From: Ryuji Yasukochi Date: Tue, 10 Mar 2026 19:48:58 +0900 Subject: [PATCH] fix: match GNU error format for unrecognized options (#180) * fix: match GNU error format for unrecognized options Use single quotes and remove colon to match GNU diff/cmp output: `unrecognized option '--foobar'` instead of `unrecognized option: "--foobar"` Also use `contains` instead of `starts_with` in the integration test to handle the command prefix (e.g. `cmp: unrecognized option ...`). Follow-up to #178 / #179. Co-Authored-By: Claude Opus 4.6 * style: apply cargo fmt formatting Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- src/cmp.rs | 2 +- src/params.rs | 2 +- tests/integration.rs | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/cmp.rs b/src/cmp.rs index f504172..587d5cc 100644 --- a/src/cmp.rs +++ b/src/cmp.rs @@ -217,7 +217,7 @@ pub fn parse_params>(mut opts: Peekable) -> Resu std::process::exit(0); } if param_str.starts_with('-') { - return Err(format!("unrecognized option: {param:?}")); + return Err(format!("unrecognized option '{}'", param.to_string_lossy())); } if from.is_none() { from = Some(param); diff --git a/src/params.rs b/src/params.rs index 921a397..74ef3e3 100644 --- a/src/params.rs +++ b/src/params.rs @@ -195,7 +195,7 @@ pub fn parse_params>(mut opts: Peekable) -> Resu Err(error) => return Err(error), } if param.to_string_lossy().starts_with('-') { - return Err(format!("unrecognized option: {param:?}")); + return Err(format!("unrecognized option '{}'", param.to_string_lossy())); } if from.is_none() { from = Some(param); diff --git a/tests/integration.rs b/tests/integration.rs index c9db571..0e8d21e 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -39,9 +39,7 @@ mod common { cmd.assert() .code(predicate::eq(2)) .failure() - .stderr(predicate::str::starts_with( - "unrecognized option: \"--foobar\"", - )); + .stderr(predicate::str::contains("unrecognized option '--foobar'")); } Ok(()) }