split: with --line-bytes only allocate memory as needed
commitfec363cebf581ef27f6d01686dec5a0499aa6818
authorPádraig Brady <P@draigBrady.com>
Sat, 20 Apr 2013 07:46:43 +0000 (20 08:46 +0100)
committerPádraig Brady <P@draigBrady.com>
Thu, 23 May 2013 10:13:24 +0000 (23 11:13 +0100)
tree59d03cfaae216cc0dc4f9ec221f375fe7b605b14
parent478dade09a4288f73e963b7f185ef9f73b681b42
split: with --line-bytes only allocate memory as needed

* src/split.c (line_bytes_split): Rewrite to only buffer
when necessary.  I.E. only increase the buffer when we've
already lines output in a split and we encounter a line
larger than the input buffer size, in which case a hold
buffer will be increased in increments of the input buffer size.
(lines_rr): Use the more abstract xalloc_die() just like
we did in line_bytes_split(), rather than explicitly
printing the "memory exhausted" message and exiting.
* tests/split/line-bytes.sh: Add a new test for this
function which previously had no test coverage.
* tests/local.mk: Reference the new test.
* NEWS: Mention the improvement.
Fixes http://bugs.gnu.org/13537
NEWS
src/split.c
tests/local.mk
tests/split/line-bytes.sh [new file with mode: 0755]