1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-27 19:17:43 +00:00

Merge pull request #8126 from cakebaker/tr_use_equals_instead_of_less_than

tr: some small improvements
This commit is contained in:
Sylvestre Ledru 2025-06-09 17:38:25 +02:00 committed by GitHub
commit d81ffb12ad
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3,15 +3,13 @@
// For the full copyright and license information, please view the LICENSE // For the full copyright and license information, please view the LICENSE
// file that was distributed with this source code. // file that was distributed with this source code.
// spell-checker:ignore (ToDO) allocs bset dflag cflag sflag tflag
mod operation; mod operation;
mod unicode_table; mod unicode_table;
use crate::operation::DeleteOperation;
use clap::{Arg, ArgAction, Command, value_parser}; use clap::{Arg, ArgAction, Command, value_parser};
use operation::{ use operation::{
Sequence, SqueezeOperation, SymbolTranslator, TranslateOperation, translate_input, DeleteOperation, Sequence, SqueezeOperation, SymbolTranslator, TranslateOperation,
translate_input,
}; };
use std::collections::HashMap; use std::collections::HashMap;
use std::ffi::OsString; use std::ffi::OsString;
@ -33,9 +31,7 @@ mod options {
#[uucore::main] #[uucore::main]
pub fn uumain(args: impl uucore::Args) -> UResult<()> { pub fn uumain(args: impl uucore::Args) -> UResult<()> {
let matches = uu_app() let matches = uu_app().try_get_matches_from(args)?;
.after_help(get_message("tr-after-help"))
.try_get_matches_from(args)?;
let delete_flag = matches.get_flag(options::DELETE); let delete_flag = matches.get_flag(options::DELETE);
let complement_flag = matches.get_flag(options::COMPLEMENT); let complement_flag = matches.get_flag(options::COMPLEMENT);
@ -51,13 +47,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
.map(ToOwned::to_owned) .map(ToOwned::to_owned)
.collect(); .collect();
let sets_len = sets.len();
if sets.is_empty() { if sets.is_empty() {
return Err(UUsageError::new(1, get_message("tr-error-missing-operand"))); return Err(UUsageError::new(1, get_message("tr-error-missing-operand")));
} }
if !(delete_flag || squeeze_flag) && sets_len < 2 { let sets_len = sets.len();
if !(delete_flag || squeeze_flag) && sets_len == 1 {
return Err(UUsageError::new( return Err(UUsageError::new(
1, 1,
get_message_with_args( get_message_with_args(
@ -67,7 +63,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
)); ));
} }
if delete_flag & squeeze_flag && sets_len < 2 { if delete_flag && squeeze_flag && sets_len == 1 {
return Err(UUsageError::new( return Err(UUsageError::new(
1, 1,
get_message_with_args( get_message_with_args(
@ -147,7 +143,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
translate_input(&mut locked_stdin, &mut buffered_stdout, op)?; translate_input(&mut locked_stdin, &mut buffered_stdout, op)?;
} }
} else if squeeze_flag { } else if squeeze_flag {
if sets_len < 2 { if sets_len == 1 {
let op = SqueezeOperation::new(set1); let op = SqueezeOperation::new(set1);
translate_input(&mut locked_stdin, &mut buffered_stdout, op)?; translate_input(&mut locked_stdin, &mut buffered_stdout, op)?;
} else { } else {
@ -173,6 +169,7 @@ pub fn uu_app() -> Command {
.version(uucore::crate_version!()) .version(uucore::crate_version!())
.about(get_message("tr-about")) .about(get_message("tr-about"))
.override_usage(format_usage(&get_message("tr-usage"))) .override_usage(format_usage(&get_message("tr-usage")))
.after_help(get_message("tr-after-help"))
.infer_long_args(true) .infer_long_args(true)
.trailing_var_arg(true) .trailing_var_arg(true)
.arg( .arg(