Added -S flag for truncating long lines

This commit is contained in:
John Higgins 2022-09-09 17:04:09 -07:00
parent 6680f65e4b
commit a272d3df16
No known key found for this signature in database
GPG key ID: 192DF5D301BD714C
2 changed files with 21 additions and 9 deletions

View file

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

View file

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