/* linebuffer.h -- declarations for reading arbitrarily long lines
- Copyright (C) 1986, 1991, 1998 Free Software Foundation, Inc.
+
+ Copyright (C) 1986, 1991, 1998, 1999, 2002, 2003 Free Software
+ Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
struct linebuffer
{
- long size; /* Allocated. */
- long length; /* Used. */
+ size_t size; /* Allocated. */
+ size_t length; /* Used. */
char *buffer;
};
void initbuffer PARAMS ((struct linebuffer *linebuffer));
/* Read an arbitrarily long line of text from STREAM into LINEBUFFER.
- Remove any newline. Does not null terminate.
+ 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.
Return LINEBUFFER, except at end of file return 0. */
-struct linebuffer *readline PARAMS ((struct linebuffer *linebuffer,
- FILE *stream));
+struct linebuffer *readlinebuffer PARAMS ((struct linebuffer *linebuffer,
+ FILE *stream));
/* Free linebuffer LINEBUFFER and its data, all allocated with malloc. */
void freebuffer PARAMS ((struct linebuffer *));