mirror of
git://git.sv.gnu.org/coreutils
synced 2026-06-04 06:45:12 -04:00
(print_long_format): If a file size is negative, assume
the typical case where it has wrapped around from a positive value.
This commit is contained in:
@@ -2637,8 +2637,17 @@ print_long_format (const struct fileinfo *f)
|
||||
else
|
||||
{
|
||||
char hbuf[LONGEST_HUMAN_READABLE + 1];
|
||||
uintmax_t size = f->stat.st_size;
|
||||
|
||||
/* POSIX requires that the size be printed without a sign, even
|
||||
when negative. Assume the typical case where negative sizes
|
||||
are actually positive values that have wrapped around. */
|
||||
if (sizeof f->stat.st_size < sizeof size)
|
||||
size += ((uintmax_t) (f->stat.st_size < 0)
|
||||
<< (sizeof f->stat.st_size * CHAR_BIT));
|
||||
|
||||
sprintf (p, "%8s ",
|
||||
human_readable ((uintmax_t) f->stat.st_size, hbuf, 1,
|
||||
human_readable (size, hbuf, 1,
|
||||
output_block_size < 0 ? output_block_size : 1));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user