From 13a0c1b05a4b175f13decf3b15567dc71ea043ac Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Mon, 10 Feb 2020 21:44:14 +0100 Subject: Cleanup statistics print out - Give a rounded input/output byte count. - Seperate groups by new lines. Signed-off-by: David Oberhollenzer --- unpack/list_files.c | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) (limited to 'unpack') diff --git a/unpack/list_files.c b/unpack/list_files.c index c08c2dd..238ffec 100644 --- a/unpack/list_files.c +++ b/unpack/list_files.c @@ -64,40 +64,23 @@ static int count_int_chars(unsigned int i) return count; } -static void print_size(sqfs_u64 size, char *buffer) -{ - static const char *suffices = "kMGTPEZY"; - int suffix = -1; - - while (size > 1024) { - ++suffix; - size /= 1024; - } - - if (suffix >= 0) { - sprintf(buffer, "%u%c", (unsigned int)size, suffices[suffix]); - } else { - sprintf(buffer, "%u", (unsigned int)size); - } -} - static void print_node_size(const sqfs_tree_node_t *n, char *buffer) { switch (n->inode->base.mode & S_IFMT) { case S_IFLNK: - print_size(strlen((const char *)n->inode->extra), buffer); + print_size(strlen((const char *)n->inode->extra), buffer, true); break; case S_IFREG: { sqfs_u64 size; sqfs_inode_get_file_size(n->inode, &size); - print_size(size, buffer); + print_size(size, buffer, true); break; } case S_IFDIR: if (n->inode->base.type == SQFS_INODE_EXT_DIR) { - print_size(n->inode->data.dir_ext.size, buffer); + print_size(n->inode->data.dir_ext.size, buffer, true); } else { - print_size(n->inode->data.dir.size, buffer); + print_size(n->inode->data.dir.size, buffer, true); } break; case S_IFBLK: -- cgit v1.2.3