diff options
-rw-r--r-- | include/mupdf/fitz/stream.h | 9 | ||||
-rw-r--r-- | source/fitz/stream-read.c | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/include/mupdf/fitz/stream.h b/include/mupdf/fitz/stream.h index a79846ec..233e2b06 100644 --- a/include/mupdf/fitz/stream.h +++ b/include/mupdf/fitz/stream.h @@ -234,7 +234,14 @@ fz_stream *fz_keep_stream(fz_context *ctx, fz_stream *stm); */ fz_buffer *fz_read_best(fz_context *ctx, fz_stream *stm, int initial, int *truncated); -void fz_read_line(fz_context *ctx, fz_stream *stm, char *buf, int max); +/* + fz_read_line: Read a line from stream into the buffer until either a + terminating newline or EOF, which it replaces with a null byte ('\0'). + + Returns buf on success, and NULL when end of file occurs while no characters + have been read. +*/ +char *fz_read_line(fz_context *ctx, fz_stream *stm, char *buf, int max); /* fz_available: Ask how many bytes are available immediately from diff --git a/source/fitz/stream-read.c b/source/fitz/stream-read.c index 80091046..2ebd5ad6 100644 --- a/source/fitz/stream-read.c +++ b/source/fitz/stream-read.c @@ -89,7 +89,7 @@ fz_read_best(fz_context *ctx, fz_stream *stm, int initial, int *truncated) return buf; } -void +char * fz_read_line(fz_context *ctx, fz_stream *stm, char *mem, int n) { char *s = mem; @@ -112,6 +112,7 @@ fz_read_line(fz_context *ctx, fz_stream *stm, char *mem, int n) } if (n) *s = '\0'; + return (s == mem && c == EOF) ? NULL : mem; } fz_off_t |