diff --git a/src/uu/wc/src/wc.rs b/src/uu/wc/src/wc.rs index 06f9be916..33b70ee62 100644 --- a/src/uu/wc/src/wc.rs +++ b/src/uu/wc/src/wc.rs @@ -29,6 +29,7 @@ use uucore::{ error::{FromIo, UError, UResult}, format_usage, help_about, help_usage, quoting_style::{escape_name, QuotingStyle}, + shortcut_value_parser::ShortcutValueParser, show, }; @@ -439,7 +440,9 @@ pub fn uu_app() -> Command { .arg( Arg::new(options::TOTAL) .long(options::TOTAL) - .value_parser(["auto", "always", "only", "never"]) + .value_parser(ShortcutValueParser::new([ + "auto", "always", "only", "never", + ])) .value_name("WHEN") .hide_possible_values(true) .help(concat!( diff --git a/tests/by-util/test_wc.rs b/tests/by-util/test_wc.rs index 0202ba4e8..d5d955c9b 100644 --- a/tests/by-util/test_wc.rs +++ b/tests/by-util/test_wc.rs @@ -531,6 +531,10 @@ fn test_total_auto() { .args(&["lorem_ipsum.txt", "--total=auto"]) .run() .stdout_is(" 13 109 772 lorem_ipsum.txt\n"); + new_ucmd!() + .args(&["lorem_ipsum.txt", "--tot=au"]) + .run() + .stdout_is(" 13 109 772 lorem_ipsum.txt\n"); new_ucmd!() .args(&["lorem_ipsum.txt", "moby_dick.txt", "--total=auto"]) @@ -551,6 +555,13 @@ fn test_total_always() { " 13 109 772 lorem_ipsum.txt\n", " 13 109 772 total\n", )); + new_ucmd!() + .args(&["lorem_ipsum.txt", "--total=al"]) + .run() + .stdout_is(concat!( + " 13 109 772 lorem_ipsum.txt\n", + " 13 109 772 total\n", + )); new_ucmd!() .args(&["lorem_ipsum.txt", "moby_dick.txt", "--total=always"]) @@ -576,6 +587,13 @@ fn test_total_never() { " 13 109 772 lorem_ipsum.txt\n", " 18 204 1115 moby_dick.txt\n", )); + new_ucmd!() + .args(&["lorem_ipsum.txt", "moby_dick.txt", "--total=n"]) + .run() + .stdout_is(concat!( + " 13 109 772 lorem_ipsum.txt\n", + " 18 204 1115 moby_dick.txt\n", + )); } #[test] @@ -589,6 +607,10 @@ fn test_total_only() { .args(&["lorem_ipsum.txt", "moby_dick.txt", "--total=only"]) .run() .stdout_is("31 313 1887\n"); + new_ucmd!() + .args(&["lorem_ipsum.txt", "moby_dick.txt", "--t=o"]) + .run() + .stdout_is("31 313 1887\n"); } #[test]