1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-09-16 19:56:17 +00:00

fmt: update to cla p 4

This commit is contained in:
Terts Diepraam 2022-09-29 18:23:58 +02:00
parent 8260090ea1
commit c485c47503
2 changed files with 34 additions and 22 deletions

View file

@ -15,7 +15,7 @@ edition = "2021"
path = "src/fmt.rs" path = "src/fmt.rs"
[dependencies] [dependencies]
clap = { version = "3.2", features = ["wrap_help", "cargo"] } clap = { version = "4.0", features = ["wrap_help", "cargo"] }
unicode-width = "0.1.5" unicode-width = "0.1.5"
uucore = { version=">=0.0.16", package="uucore", path="../../uucore" } uucore = { version=">=0.0.16", package="uucore", path="../../uucore" }

View file

@ -10,7 +10,7 @@
#[macro_use] #[macro_use]
extern crate uucore; extern crate uucore;
use clap::{crate_version, Arg, Command}; use clap::{crate_version, Arg, ArgAction, Command};
use std::cmp; use std::cmp;
use std::fs::File; use std::fs::File;
use std::io::{stdin, stdout, Write}; use std::io::{stdin, stdout, Write};
@ -92,15 +92,15 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
tabwidth: 8, tabwidth: 8,
}; };
fmt_opts.tagged = matches.contains_id(OPT_TAGGED_PARAGRAPH); fmt_opts.tagged = matches.get_flag(OPT_TAGGED_PARAGRAPH);
if matches.contains_id(OPT_CROWN_MARGIN) { if matches.get_flag(OPT_CROWN_MARGIN) {
fmt_opts.crown = true; fmt_opts.crown = true;
fmt_opts.tagged = false; fmt_opts.tagged = false;
} }
fmt_opts.mail = matches.contains_id(OPT_PRESERVE_HEADERS); fmt_opts.mail = matches.get_flag(OPT_PRESERVE_HEADERS);
fmt_opts.uniform = matches.contains_id(OPT_UNIFORM_SPACING); fmt_opts.uniform = matches.get_flag(OPT_UNIFORM_SPACING);
fmt_opts.quick = matches.contains_id(OPT_QUICK); fmt_opts.quick = matches.get_flag(OPT_QUICK);
if matches.contains_id(OPT_SPLIT_ONLY) { if matches.get_flag(OPT_SPLIT_ONLY) {
fmt_opts.split_only = true; fmt_opts.split_only = true;
fmt_opts.crown = false; fmt_opts.crown = false;
fmt_opts.tagged = false; fmt_opts.tagged = false;
@ -150,7 +150,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
)); ));
} }
}; };
if !matches.contains_id(OPT_WIDTH) { if !matches.get_flag(OPT_WIDTH) {
fmt_opts.width = cmp::max(fmt_opts.goal * 100 / 94, fmt_opts.goal + 3); fmt_opts.width = cmp::max(fmt_opts.goal * 100 / 94, fmt_opts.goal + 3);
} else if fmt_opts.goal > fmt_opts.width { } else if fmt_opts.goal > fmt_opts.width {
return Err(USimpleError::new(1, "GOAL cannot be greater than WIDTH.")); return Err(USimpleError::new(1, "GOAL cannot be greater than WIDTH."));
@ -218,7 +218,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
Ok(()) Ok(())
} }
pub fn uu_app<'a>() -> Command<'a> { pub fn uu_app() -> Command {
Command::new(uucore::util_name()) Command::new(uucore::util_name())
.version(crate_version!()) .version(crate_version!())
.about(ABOUT) .about(ABOUT)
@ -233,7 +233,8 @@ pub fn uu_app<'a>() -> Command<'a> {
may have different indentations, in which \ may have different indentations, in which \
case the first line's indentation is preserved, \ case the first line's indentation is preserved, \
and each subsequent line's indentation matches the second line.", and each subsequent line's indentation matches the second line.",
), )
.action(ArgAction::SetTrue),
) )
.arg( .arg(
Arg::new(OPT_TAGGED_PARAGRAPH) Arg::new(OPT_TAGGED_PARAGRAPH)
@ -242,7 +243,8 @@ pub fn uu_app<'a>() -> Command<'a> {
.help( .help(
"Like -c, except that the first and second line of a paragraph *must* \ "Like -c, except that the first and second line of a paragraph *must* \
have different indentation or they are treated as separate paragraphs.", have different indentation or they are treated as separate paragraphs.",
), )
.action(ArgAction::SetTrue),
) )
.arg( .arg(
Arg::new(OPT_PRESERVE_HEADERS) Arg::new(OPT_PRESERVE_HEADERS)
@ -251,13 +253,15 @@ pub fn uu_app<'a>() -> Command<'a> {
.help( .help(
"Attempt to detect and preserve mail headers in the input. \ "Attempt to detect and preserve mail headers in the input. \
Be careful when combining this flag with -p.", Be careful when combining this flag with -p.",
), )
.action(ArgAction::SetTrue),
) )
.arg( .arg(
Arg::new(OPT_SPLIT_ONLY) Arg::new(OPT_SPLIT_ONLY)
.short('s') .short('s')
.long("split-only") .long("split-only")
.help("Split lines only, do not reflow."), .help("Split lines only, do not reflow.")
.action(ArgAction::SetTrue),
) )
.arg( .arg(
Arg::new(OPT_UNIFORM_SPACING) Arg::new(OPT_UNIFORM_SPACING)
@ -269,7 +273,8 @@ pub fn uu_app<'a>() -> Command<'a> {
Sentence breaks in the input are detected as [?!.] \ Sentence breaks in the input are detected as [?!.] \
followed by two spaces or a newline; other punctuation \ followed by two spaces or a newline; other punctuation \
is not interpreted as a sentence break.", is not interpreted as a sentence break.",
), )
.action(ArgAction::SetTrue),
) )
.arg( .arg(
Arg::new(OPT_PREFIX) Arg::new(OPT_PREFIX)
@ -301,7 +306,8 @@ pub fn uu_app<'a>() -> Command<'a> {
.help( .help(
"PREFIX must match at the \ "PREFIX must match at the \
beginning of the line with no preceding whitespace.", beginning of the line with no preceding whitespace.",
), )
.action(ArgAction::SetTrue),
) )
.arg( .arg(
Arg::new(OPT_EXACT_SKIP_PREFIX) Arg::new(OPT_EXACT_SKIP_PREFIX)
@ -310,7 +316,8 @@ pub fn uu_app<'a>() -> Command<'a> {
.help( .help(
"PSKIP must match at the \ "PSKIP must match at the \
beginning of the line with no preceding whitespace.", beginning of the line with no preceding whitespace.",
), )
.action(ArgAction::SetTrue),
) )
.arg( .arg(
Arg::new(OPT_WIDTH) Arg::new(OPT_WIDTH)
@ -326,10 +333,16 @@ pub fn uu_app<'a>() -> Command<'a> {
.help("Goal width, default ~0.94*WIDTH. Must be less than WIDTH.") .help("Goal width, default ~0.94*WIDTH. Must be less than WIDTH.")
.value_name("GOAL"), .value_name("GOAL"),
) )
.arg(Arg::new(OPT_QUICK).short('q').long("quick").help( .arg(
"Break lines more quickly at the \ Arg::new(OPT_QUICK)
.short('q')
.long("quick")
.help(
"Break lines more quickly at the \
expense of a potentially more ragged appearance.", expense of a potentially more ragged appearance.",
)) )
.action(ArgAction::SetTrue),
)
.arg( .arg(
Arg::new(OPT_TAB_WIDTH) Arg::new(OPT_TAB_WIDTH)
.short('T') .short('T')
@ -343,8 +356,7 @@ pub fn uu_app<'a>() -> Command<'a> {
) )
.arg( .arg(
Arg::new(ARG_FILES) Arg::new(ARG_FILES)
.multiple_occurrences(true) .action(ArgAction::Append)
.takes_value(true)
.value_hint(clap::ValueHint::FilePath), .value_hint(clap::ValueHint::FilePath),
) )
} }