diff --git a/src/uu/dirname/src/dirname.rs b/src/uu/dirname/src/dirname.rs index a645b05fd..25daa3a36 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 8471b48c4..8c465393c 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");