From 9dbf2c362db24973cf282b38169db2dd5e95a35d Mon Sep 17 00:00:00 2001 From: Ben Wiederhake Date: Sat, 30 Mar 2024 16:06:15 +0100 Subject: [PATCH] dirname: accept repeated flag --- src/uu/dirname/src/dirname.rs | 1 + tests/by-util/test_dirname.rs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/uu/dirname/src/dirname.rs b/src/uu/dirname/src/dirname.rs index a645b05fd7..25daa3a36c 100644 --- a/src/uu/dirname/src/dirname.rs +++ b/src/uu/dirname/src/dirname.rs @@ -64,6 +64,7 @@ pub fn uu_app() -> Command { .about(ABOUT) .version(crate_version!()) .override_usage(format_usage(USAGE)) + .args_override_self(true) .infer_long_args(true) .arg( Arg::new(options::ZERO) diff --git a/tests/by-util/test_dirname.rs b/tests/by-util/test_dirname.rs index 8471b48c44..8c465393cf 100644 --- a/tests/by-util/test_dirname.rs +++ b/tests/by-util/test_dirname.rs @@ -40,6 +40,16 @@ fn test_path_without_trailing_slashes_and_zero() { .stdout_is("/root/alpha/beta/gamma/delta/epsilon\u{0}"); } +#[test] +fn test_repeated_zero() { + new_ucmd!() + .arg("--zero") + .arg("--zero") + .arg("foo/bar") + .succeeds() + .stdout_only("foo\u{0}"); +} + #[test] fn test_root() { new_ucmd!().arg("/").run().stdout_is("/\n");