I think this is good as a first step in improving the formatting of ls.
There are 3 cases when formatting brakes
- when file size is larger than 7 digits
- when user names substantially differ in length
- when group names differ
2 168 2007-10-09 20:21 -rw-rw-rw- shv supergroup /README.txt
0 2008-04-09 18:47 drwxr-xr-x administrator supergroup /conf
3 12345678 2008-04-09 18:46 -rw-r--r-- shv supergroup /conf/.svn/README.txt
3 1234567 2008-04-09 18:47 -rw-r--r-- shv supergroup /conf/.svn/dir-prop-base
3 90 2008-04-09 18:46 -rw-r--r-- shv user /conf/.svn/dir-wcprops
3 9012345 2008-04-09 18:47 -rw-r--r-- shv supergroup /conf/.svn/dir-props
The first one is going to be very common, since we expect large files and design for it. And we should fix it.
The best way would be to convert bytes into MB, GB, TB, or even PB if needed, but at least using "%-XXd" as in DU would be better.
This should also produce right aligned column.
Dynamically calculating column widths is probably the next logical improvement step, which belongs to a different issue.
We should mark this issue as an incomatible change.