Merge remote-tracking branch 'origin/master' into HEAD

This commit is contained in:
David Peter
2022-10-30 20:26:17 +01:00
20 changed files with 3008 additions and 24 deletions

View File

@@ -161,17 +161,21 @@ impl App {
}),
show_nonprintable: self.matches.get_flag("show-all"),
wrapping_mode: if self.interactive_output || maybe_term_width.is_some() {
match self.matches.get_one::<String>("wrap").map(|s| s.as_str()) {
Some("character") => WrappingMode::Character,
Some("never") => WrappingMode::NoWrapping(true),
Some("auto") | None => {
if style_components.plain() {
WrappingMode::NoWrapping(false)
} else {
WrappingMode::Character
if !self.matches.get_flag("chop-long-lines") {
match self.matches.get_one::<String>("wrap").map(|s| s.as_str()) {
Some("character") => WrappingMode::Character,
Some("never") => WrappingMode::NoWrapping(true),
Some("auto") | None => {
if style_components.plain() {
WrappingMode::NoWrapping(false)
} else {
WrappingMode::Character
}
}
_ => unreachable!("other values for --wrap are not allowed"),
}
_ => unreachable!("other values for --wrap are not allowed"),
} else {
WrappingMode::NoWrapping(true)
}
} else {
// We don't have the tty width when piping to another program.

View File

@@ -185,6 +185,13 @@ pub fn build_app(interactive_output: bool) -> Command {
The '--terminal-width' option can be used in addition to \
control the output width."),
)
.arg(
Arg::new("chop-long-lines")
.long("chop-long-lines")
.short('S')
.action(ArgAction::SetTrue)
.help("Truncate all lines longer than screen width. Alias for '--wrap=never'."),
)
.arg(
Arg::new("terminal-width")
.long("terminal-width")