diff --git a/src/uu/seq/src/seq.rs b/src/uu/seq/src/seq.rs index 07c7f762f..788583a72 100644 --- a/src/uu/seq/src/seq.rs +++ b/src/uu/seq/src/seq.rs @@ -144,7 +144,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { pub fn uu_app<'a>() -> App<'a> { App::new(uucore::util_name()) .setting(AppSettings::TrailingVarArg) - .setting(AppSettings::AllowHyphenValues) + .setting(AppSettings::AllowNegativeNumbers) .setting(AppSettings::InferLongArgs) .version(crate_version!()) .about(ABOUT) diff --git a/tests/by-util/test_seq.rs b/tests/by-util/test_seq.rs index 5adbc292e..a18cbc2ad 100644 --- a/tests/by-util/test_seq.rs +++ b/tests/by-util/test_seq.rs @@ -20,14 +20,14 @@ fn test_hex_rejects_sign_after_identifier() { .args(&["-0x-123ABC"]) .fails() .no_stdout() - .stderr_contains("invalid floating point argument: '-0x-123ABC'") - .stderr_contains("for more information."); + .stderr_contains("which wasn't expected, or isn't valid in this context") + .stderr_contains("For more information try --help"); new_ucmd!() .args(&["-0x+123ABC"]) .fails() .no_stdout() - .stderr_contains("invalid floating point argument: '-0x+123ABC'") - .stderr_contains("for more information."); + .stderr_contains("which wasn't expected, or isn't valid in this context") + .stderr_contains("For more information try --help"); } #[test] @@ -81,6 +81,33 @@ fn test_rejects_non_floats() { .usage_error("invalid floating point argument: 'foo'"); } +#[test] +fn test_accepts_option_argument_directly() { + new_ucmd!() + .arg("-s,") + .arg("2") + .succeeds() + .stdout_is("1,2\n"); +} + +#[test] +fn test_option_with_detected_negative_argument() { + new_ucmd!() + .arg("-s,") + .args(&["-1", "2"]) + .succeeds() + .stdout_is("-1,0,1,2\n"); +} + +#[test] +fn test_negative_number_as_separator() { + new_ucmd!() + .arg("-s") + .args(&["-1", "2"]) + .succeeds() + .stdout_is("1-12\n"); +} + #[test] fn test_invalid_float() { new_ucmd!()