Subject: bug#10016: ls -lk is wrong

From: Eric Blake <[email-masked]>
Date: Fri, 11 Nov 2011 11:36:46 -0700

On 11/11/2011 11:30 AM, Jim Meyering wrote:
>> +++ b/src/ls.c
>> @@ -3030,9 +3030,7 @@ gobble_file (char const *name, enum filetype type, ino_t inode,
>>              {
>>                char buf[LONGEST_HUMAN_READABLE + 1];
>>                uintmax_t size = unsigned_file_size (f->stat.st_size);
>> -              int len = mbswidth (human_readable (size, buf, human_output_opts,
>> -                                                  1, file_output_block_size),
>> -                                  0);
>> +              int len = mbswidth (human_readable (size, buf, 0, 1, 1), 0);
> 
> I don't like the idea of printing a byte count there when
> --block-size=... takes effect.  Does anyone else have an opinion?

Are you proposing that --block-size keep the current behavior, and that
-k no longer be a synonym for --block-size=1k but instead becomes a new
long option?

Makes sense to me - POSIX didn't standardize -k until 2008, which was
long after coreutils had been implementing --block-size; I'm worried
that changing the behavior of --block-size may have negative effects,
whereas changing the behavior of -k to match POSIX is justifiable.

> 
> Regardless, -k's descriptions will have to be fixed, too.

Agreed.

-- 
Eric Blake   [email-masked]    +1-801-349-2682
Libvirt virtualization library http://libvirt.org