summaryrefslogtreecommitdiffstats
path: root/src/display.rs
diff options
context:
space:
mode:
authorPhilipp Mildenberger <philipp.mildenberger@student.uibk.ac.at>2019-06-16 13:46:47 +0200
committerAbin Simon <abinsimon10@gmail.com>2019-07-17 10:27:59 +0000
commit3facd4484083003e73978a3de688529586c8021f (patch)
tree597f81aabc8b27993f87adac748aef6cca659e66 /src/display.rs
parentcb1de672618922cf55015190121e8c67a1aac5ba (diff)
refactored 'Size' to only contain bytes. The unit is calculated only when needed. Added a new --size option 'bytes' to display the filesize in bytes (without unit) this is the default of ls
Diffstat (limited to 'src/display.rs')
-rw-r--r--src/display.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/display.rs b/src/display.rs
index 4e3b126..3c81eb2 100644
--- a/src/display.rs
+++ b/src/display.rs
@@ -1,7 +1,7 @@
use crate::color::Colors;
use crate::flags::{Block, Display, Flags, Layout};
use crate::icon::Icons;
-use crate::meta::{FileType, Meta};
+use crate::meta::{FileType, Meta, Size};
use ansi_term::{ANSIString, ANSIStrings};
use term_grid::{Cell, Direction, Filling, Grid, GridOptions};
use terminal_size::terminal_size;
@@ -400,12 +400,16 @@ fn detect_size_lengths(metas: &[Meta], flags: &Flags) -> (usize, usize) {
let mut max_unit_size: usize = 0;
for meta in metas {
- if meta.size.render_value().len() > max_value_length {
- max_value_length = meta.size.render_value().len();
+ let unit = meta.size.get_unit(flags);
+ let value_len = meta.size.render_value(&unit).len();
+ let unit_len = Size::render_unit(&unit, &flags).len();
+
+ if value_len > max_value_length {
+ max_value_length = value_len;
}
- if meta.size.render_unit(&flags).len() > max_unit_size {
- max_unit_size = meta.size.render_unit(&flags).len();
+ if unit_len > max_unit_size {
+ max_unit_size = unit_len;
}
}