mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-27 19:17:43 +00:00
Merge pull request #2486 from hbina/hbina-tr-return-err-when-extra-args
`tr` should error out when if user provides more than 2 sets
This commit is contained in:
commit
52c6593ef5
2 changed files with 20 additions and 6 deletions
|
@ -233,7 +233,7 @@ fn get_usage() -> String {
|
|||
}
|
||||
|
||||
fn get_long_usage() -> String {
|
||||
String::from(
|
||||
format!(
|
||||
"Translate, squeeze, and/or delete characters from standard input,
|
||||
writing to standard output.",
|
||||
)
|
||||
|
@ -257,10 +257,10 @@ pub fn uumain(args: impl uucore::Args) -> i32 {
|
|||
let squeeze_flag = matches.is_present(options::SQUEEZE);
|
||||
let truncate_flag = matches.is_present(options::TRUNCATE);
|
||||
|
||||
let sets: Vec<String> = match matches.values_of(options::SETS) {
|
||||
Some(v) => v.map(|v| v.to_string()).collect(),
|
||||
None => vec![],
|
||||
};
|
||||
let sets = matches
|
||||
.values_of(options::SETS)
|
||||
.map(|v| v.map(ToString::to_string).collect::<Vec<_>>())
|
||||
.unwrap_or_default();
|
||||
|
||||
if sets.is_empty() {
|
||||
show_error!(
|
||||
|
@ -350,5 +350,11 @@ pub fn uu_app() -> App<'static, 'static> {
|
|||
.short("t")
|
||||
.help("first truncate SET1 to length of SET2"),
|
||||
)
|
||||
.arg(Arg::with_name(options::SETS).multiple(true))
|
||||
.arg(
|
||||
Arg::with_name(options::SETS)
|
||||
.multiple(true)
|
||||
.takes_value(true)
|
||||
.min_values(1)
|
||||
.max_values(2),
|
||||
)
|
||||
}
|
||||
|
|
|
@ -284,3 +284,11 @@ fn test_interpret_backslash_at_eol_literally() {
|
|||
.succeeds()
|
||||
.stdout_is("\\");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_more_than_2_sets() {
|
||||
new_ucmd!()
|
||||
.args(&["'abcdefgh'", "'a", "'b'"])
|
||||
.pipe_in("hello world")
|
||||
.fails();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue