Remove some arbitrary restrictions on size fields,
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 13 Dec 2006 21:03:54 +0000 (22:03 +0100)
committerJim Meyering <jim@meyering.net>
Wed, 13 Dec 2006 21:03:54 +0000 (22:03 +0100)
commitec95137cc376119f634610a7683a296fc7b78ea4
tree52d315f085e18022db44722d7e58f3e4635d84d9
parentae3ee95eb8372ec5947e3c790c6ea77bc703c160
Remove some arbitrary restrictions on size fields,
so that commands like "sort -k 18446744073709551616" no longer fail merely
because 18446744073709551616 doesn't fit in uintmax_t.  The trick is that
these fields can all be treated as effectively infinity;  their exact
values don't matter, since no internal buffer can be that long.
* src/join.c (string_to_join_field): Verify that SIZE_MAX <= ULONG_MAX
if the code assumes this.  Silently truncate too-large values to SIZE_MAX,
as the remaining code will do the right thing in this case.
* src/sort.c (parse_field_count): Likewise.
* src/uniq.c (size_opt, main): Likewise.
* tests/join/Test.pm (bigfield): New test.
* tests/sort/Test.pm (bigfield): New test.
* tests/uniq/Test.pm (121): New test.
Signed-off-by: Jim Meyering <jim@meyering.net>
ChangeLog
src/join.c
src/sort.c
src/uniq.c
tests/join/Makefile.am
tests/join/Test.pm
tests/sort/Makefile.am
tests/sort/Test.pm
tests/uniq/Makefile.am
tests/uniq/Test.pm