diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2019-01-17 16:41:13 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-01-24 08:24:05 +0100 |
commit | 4ebb55e96177a4b5f05e1407e01095cb4924d0a5 (patch) | |
tree | cc5eedd4205435eaa02ffa20b6d886167c3981c5 /commands | |
parent | f24245742636ef9996aae66e92244aed659b7d72 (diff) | |
download | barebox-4ebb55e96177a4b5f05e1407e01095cb4924d0a5.tar.gz barebox-4ebb55e96177a4b5f05e1407e01095cb4924d0a5.tar.xz |
ls: Adjust amount of space allocated for filesize
Maximum file size on 64-bit system is 2^63-1 (9223372036854775807),
which takes more that 14 characters of space. In order to keep things
properly aligned adjust that spacing to 20 on 64-bit platforms.
Before:
ls -l /dev/
d--------- 0 .
d--------- 0 ..
crw------- 16384 dds-eeprom
crw------- 256 e1000-invm0
crw------- 16384 eeprom0
cr-------- 0 full
crw------- 2048 imx-ocotp
crw------- 16384 main-eeprom
crw------- 64 mdio0-phy00
crw------- 9223372036854775807 mem
c-w------- 0 netconsole-1
c-w------- 0 null
crw------- 256060514304 nvme0n1
cr-------- 0 prng
crw------- 4294967296 ram0
c-w------- 0 serial0-1
cr-------- 0 zero
After:
ls -l /dev/
d--------- 0 .
d--------- 0 ..
crw------- 16384 dds-eeprom
crw------- 256 e1000-invm0
crw------- 16384 eeprom0
cr-------- 0 full
crw------- 2048 imx-ocotp
crw------- 16384 main-eeprom
crw------- 64 mdio0-phy00
crw------- 9223372036854775807 mem
c-w------- 0 netconsole-1
c-w------- 0 null
crw------- 256060514304 nvme0n1
cr-------- 0 prng
crw------- 4294967296 ram0
c-w------- 0 serial0-1
cr-------- 0 zero
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands')
-rw-r--r-- | commands/ls.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/commands/ls.c b/commands/ls.c index e54991862d..e5e37d75c5 100644 --- a/commands/ls.c +++ b/commands/ls.c @@ -26,6 +26,15 @@ #include <getopt.h> #include <stringlist.h> +/* + * SIZELEN = strlen(itoa(MAX_LFS_FILESIZE)) + 1; + */ +#ifdef CONFIG_CPU_64 +#define SIZELEN 20 +#else +#define SIZELEN 14 +#endif + static void ls_one(const char *path, const char* fullname) { char modestr[11]; @@ -38,7 +47,8 @@ static void ls_one(const char *path, const char* fullname) return; mkmodestr(s.st_mode, modestr); - printf("%s %14llu %*.*s", modestr, s.st_size, namelen, namelen, path); + printf("%s %*llu %*.*s", modestr, SIZELEN, s.st_size, namelen, + namelen, path); if (S_ISLNK(s.st_mode)) { char realname[PATH_MAX]; |