[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [BusyBox] bug#1142: ls -l behaves like ls -lh when HUMAN_READABLE is turned on
From:       Mark Whitley <markw () lineo ! com>
Date:       2001-03-28 18:52:01
[Download RAW message or body]

Package: busybox
Version: CVS
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@lineo.com




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic