Merge pull request #597 from FliegendeWurst/bugfixes

Two small bugfixes
This commit is contained in:
Benjamin Sago 2020-01-19 00:55:58 +00:00 committed by GitHub
commit 416818fda2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 4 deletions

View File

@ -81,7 +81,7 @@ impl Mode {
// If the terminal width couldnt be matched for some reason, such // If the terminal width couldnt be matched for some reason, such
// as the programs stdout being connected to a file, then // as the programs stdout being connected to a file, then
// fallback to the lines view. // fallback to the lines or details view.
else if matches.has(&flags::TREE)? { else if matches.has(&flags::TREE)? {
let details = details::Options { let details = details::Options {
table: None, table: None,
@ -92,7 +92,10 @@ impl Mode {
Ok(Mode::Details(details)) Ok(Mode::Details(details))
} }
else { else if matches.has(&flags::LONG)? {
let details = long()?;
Ok(Mode::Details(details))
} else {
let lines = lines::Options { icons: matches.has(&flags::ICONS)?, }; let lines = lines::Options { icons: matches.has(&flags::ICONS)?, };
Ok(Mode::Lines(lines)) Ok(Mode::Lines(lines))
} }

View File

@ -2,7 +2,7 @@ use ansi_term::{ANSIString, Style};
pub fn escape<'a>(string: String, bits: &mut Vec<ANSIString<'a>>, good: Style, bad: Style) { pub fn escape<'a>(string: String, bits: &mut Vec<ANSIString<'a>>, good: Style, bad: Style) {
if string.chars().all(|c| c >= 0x20 as char) { if string.chars().all(|c| c >= 0x20 as char && c != 0x7f as char) {
bits.push(good.paint(string)); bits.push(good.paint(string));
} }
else { else {
@ -10,7 +10,7 @@ pub fn escape<'a>(string: String, bits: &mut Vec<ANSIString<'a>>, good: Style, b
// The `escape_default` method on `char` is *almost* what we want here, but // The `escape_default` method on `char` is *almost* what we want here, but
// it still escapes non-ASCII UTF-8 characters, which are still printable. // it still escapes non-ASCII UTF-8 characters, which are still printable.
if c >= 0x20 as char { if c >= 0x20 as char && c != 0x7f as char {
// TODO: This allocates way too much, // TODO: This allocates way too much,
// hence the `all` check above. // hence the `all` check above.
let mut s = String::new(); let mut s = String::new();