diff --git a/src/uu/pr/src/pr.rs b/src/uu/pr/src/pr.rs index 843b3b8f970..58902cf17ef 100644 --- a/src/uu/pr/src/pr.rs +++ b/src/uu/pr/src/pr.rs @@ -276,14 +276,18 @@ pub fn uu_app() -> Command { .short('s') .long(options::COLUMN_CHAR_SEPARATOR) .help(translate!("pr-help-column-char-separator")) - .value_name("char"), + .value_name("char") + .num_args(0..=1) + .default_missing_value("\t"), ) .arg( Arg::new(options::COLUMN_STRING_SEPARATOR) .short('S') .long(options::COLUMN_STRING_SEPARATOR) .help(translate!("pr-help-column-string-separator")) - .value_name("string"), + .value_name("string") + .num_args(0..=1) + .default_missing_value(" "), ) .arg( Arg::new(options::MERGE) diff --git a/tests/by-util/test_pr.rs b/tests/by-util/test_pr.rs index 63063a7e732..d2e6cb675b7 100644 --- a/tests/by-util/test_pr.rs +++ b/tests/by-util/test_pr.rs @@ -627,3 +627,17 @@ fn test_page_header_width() { let regex = Regex::new(&pattern).unwrap(); new_ucmd!().pipe_in("a").succeeds().stdout_matches(®ex); } + +#[test] +fn test_separator_options_default_values() { + // -s and -S without arguments should use default values (TAB and space) + // TODO: verify output matches GNU pr behavior + new_ucmd!() + .args(&["-t", "-2", "-s"]) + .pipe_in("a\nb\n") + .succeeds(); + new_ucmd!() + .args(&["-t", "-2", "-S"]) + .pipe_in("a\nb\n") + .succeeds(); +}