- Remove any newline. Does not null terminate.
- Return LINEBUFFER, except at end of file return 0. */
-
+ Keep the newline; append a newline if it's the last line of a file
+ that ends in a non-newline character. Do not null terminate.
+ Therefore the stream can contain NUL bytes, and the length
+ (including the newline) is returned in linebuffer->length.
+ Return NULL upon error, or when STREAM is empty.
+ Otherwise, return LINEBUFFER. */