ls: implement ls -sh (human-readable allocated blocks)

function                                             old     new   delta
display_single                                       979    1018     +39

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2022-01-08 22:59:49 +01:00
parent 143356876b
commit ff8fda8482

View File

@ -498,9 +498,16 @@ static NOINLINE unsigned display_single(const struct dnode *dn)
if (opt & OPT_i) /* show inode# */
column += printf("%7llu ", (long long) dn->dn_ino);
//TODO: -h should affect -s too:
if (opt & OPT_s) /* show allocated blocks */
column += printf("%6"OFF_FMT"u ", (off_t) (dn->dn_blocks >> 1));
if (opt & OPT_s) { /* show allocated blocks */
if (opt & OPT_h) {
column += printf("%"HUMAN_READABLE_MAX_WIDTH_STR"s ",
/* print size, show one fractional, use suffixes */
make_human_readable_str((off_t)dn->dn_blocks << 9, 1, 0)
);
} else {
column += printf("%6"OFF_FMT"u ", (off_t)(dn->dn_blocks >> 1));
}
}
if (opt & OPT_l) {
/* long listing: show mode */
char modestr[12];