ls -l behaves like ls -lh when HUMAN_READABLE is turned on
Mark Whitley
markw at lineo.com
Wed Mar 28 18:52:01 UTC 2001
Package: busybox
Version: CVS (Wed Mar 28 11:44:04 MST 2001)
Severity: normal
I suspect this problem was introduced with the recent modifications to ls and
make_human_readable(). Test case follows:
Busybox compiled with BB_FEATURE_HUMAN_READABLE disabled:
$ /bin/ls -l tests/
total 76
drwxr-xr-x 2 markw users 4096 Mar 27 13:50 CVS
-rw-r--r-- 1 markw users 675 Aug 21 2000 Makefile
-rw-r--r-- 1 markw users 8944 Dec 11 10:33 cp_tests.mk
-rw-r--r-- 1 markw users 294 Mar 13 13:54 expr
-rw-r--r-- 1 markw users 210 Mar 26 10:07 grep.in
-rw-r--r-- 1 markw users 1423 Mar 4 2000 ln_tests.mk
-rw-r--r-- 1 markw users 1086 Mar 15 15:13 mb.patch
-rwxr-xr-x 1 markw users 2206 Mar 15 15:13 multibuild.pl
-rwxr-xr-x 1 markw users 2414 Mar 15 15:15 multifeat.pl
-rw-r--r-- 1 markw users 3906 Dec 11 10:33 mv_tests.mk
-rw-r--r-- 1 markw users 298 Apr 19 2000 syslog_test.c
-rw-r--r-- 1 markw users 4989 Mar 27 13:25 testcases
-rw-r--r-- 1 markw users 772 Mar 27 13:26 tester.log
-rwxr-xr-x 1 markw users 3873 Mar 13 16:05 tester.sh
-rw-r--r-- 1 markw users 229 Mar 27 13:26 tmp-tst
-rw-r--r-- 1 markw users 837 Mar 12 13:01 tst-syslogd.c
$ ./busybox ls -l tests/
drwxr-xr-x 2 markw users 4096 Mar 27 13:50 CVS
-rw-r--r-- 1 markw users 675 Aug 21 2000 Makefile
-rw-r--r-- 1 markw users 8944 Dec 11 10:33 cp_tests.mk
-rw-r--r-- 1 markw users 294 Mar 13 13:54 expr
-rw-r--r-- 1 markw users 210 Mar 26 10:07 grep.in
-rw-r--r-- 1 markw users 1423 Mar 4 2000 ln_tests.mk
-rw-r--r-- 1 markw users 1086 Mar 15 15:13 mb.patch
-rwxr-xr-x 1 markw users 2206 Mar 15 15:13 multibuild.pl
-rwxr-xr-x 1 markw users 2414 Mar 15 15:15 multifeat.pl
-rw-r--r-- 1 markw users 3906 Dec 11 10:33 mv_tests.mk
-rw-r--r-- 1 markw users 298 Apr 19 2000 syslog_test.c
-rw-r--r-- 1 markw users 4989 Mar 27 13:25 testcases
-rw-r--r-- 1 markw users 772 Mar 27 13:26 tester.log
-rwxr-xr-x 1 markw users 3873 Mar 13 16:05 tester.sh
-rw-r--r-- 1 markw users 229 Mar 27 13:26 tmp-tst
-rw-r--r-- 1 markw users 837 Mar 12 13:01 tst-syslogd.c
Works fine. Now watch this:
Busybox compiled with BB_FEATURE_HUMAN_READABLE turned on:
$ /bin/ls -l tests/
total 76
drwxr-xr-x 2 markw users 4096 Mar 27 13:50 CVS
-rw-r--r-- 1 markw users 675 Aug 21 2000 Makefile
-rw-r--r-- 1 markw users 8944 Dec 11 10:33 cp_tests.mk
-rw-r--r-- 1 markw users 294 Mar 13 13:54 expr
-rw-r--r-- 1 markw users 210 Mar 26 10:07 grep.in
-rw-r--r-- 1 markw users 1423 Mar 4 2000 ln_tests.mk
-rw-r--r-- 1 markw users 1086 Mar 15 15:13 mb.patch
-rwxr-xr-x 1 markw users 2206 Mar 15 15:13 multibuild.pl
-rwxr-xr-x 1 markw users 2414 Mar 15 15:15 multifeat.pl
-rw-r--r-- 1 markw users 3906 Dec 11 10:33 mv_tests.mk
-rw-r--r-- 1 markw users 298 Apr 19 2000 syslog_test.c
-rw-r--r-- 1 markw users 4989 Mar 27 13:25 testcases
-rw-r--r-- 1 markw users 772 Mar 27 13:26 tester.log
-rwxr-xr-x 1 markw users 3873 Mar 13 16:05 tester.sh
-rw-r--r-- 1 markw users 229 Mar 27 13:26 tmp-tst
-rw-r--r-- 1 markw users 837 Mar 12 13:01 tst-syslogd.c
$ ./busybox ls -l tests/
drwxr-xr-x 2 markw users 4.0k Mar 27 13:50 CVS
-rw-r--r-- 1 markw users 675 Aug 21 2000 Makefile
-rw-r--r-- 1 markw users 8.7k Dec 11 10:33 cp_tests.mk
-rw-r--r-- 1 markw users 294 Mar 13 13:54 expr
-rw-r--r-- 1 markw users 210 Mar 26 10:07 grep.in
-rw-r--r-- 1 markw users 1.3k Mar 4 2000 ln_tests.mk
-rw-r--r-- 1 markw users 1.0k Mar 15 15:13 mb.patch
-rwxr-xr-x 1 markw users 2.1k Mar 15 15:13 multibuild.pl
-rwxr-xr-x 1 markw users 2.3k Mar 15 15:15 multifeat.pl
-rw-r--r-- 1 markw users 3.8k Dec 11 10:33 mv_tests.mk
-rw-r--r-- 1 markw users 298 Apr 19 2000 syslog_test.c
-rw-r--r-- 1 markw users 4.8k Mar 27 13:25 testcases
-rw-r--r-- 1 markw users 772 Mar 27 13:26 tester.log
-rwxr-xr-x 1 markw users 3.7k Mar 13 16:05 tester.sh
-rw-r--r-- 1 markw users 229 Mar 27 13:26 tmp-tst
-rw-r--r-- 1 markw users 837 Mar 12 13:01 tst-syslogd.c
Whoops...
This line in ls.c, line 651 is okay:
fprintf(stdout, "%9s ", make_human_readable_str(dn->dstat.st_size,
(ls_disp_hr==TRUE)? 0: 1));
But the new version of make_human_readable_str never tests the value of the
'hr' param to see if it should human-readable-ify the string or not. (I'd also
recommend that this parm be changed to a more boolean-sounding name, like
make_hr, or some such.)
Mark Whitley
markw at lineo.com
---------------------------------------
Received: (at 1142-close) by bugs.lineo.com; 28 Mar 2001 20:16:50 +0000
More information about the busybox
mailing list