summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Glaser <tg@mirbsd.org>2009-12-10 18:07:25 +0100
committerGuillem Jover <guillem@hadrons.org>2009-12-10 21:07:02 +0100
commitc17c7e13c3522c6d72ceb4bc207308b8c7452b44 (patch)
tree012d3ad22b44c1e6c455a44fba0429d32a447410
parenta5dbef45e77f1de47b11669443ece451e90b85ab (diff)
downloadlibbsd-c17c7e13c3522c6d72ceb4bc207308b8c7452b44.tar.gz
Expand on API guarantee for fgetln
OpenBSD has begun using the API guarantee that *len is not 0 if the fgetln(3) return value is not NULL; document this explicitly in the manpage and add a comment to the function implementation that this doesn’t need to be checked because getdelim/getline have similar guarantees. Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
-rw-r--r--man/fgetln.32
-rw-r--r--src/fgetln.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/man/fgetln.3 b/man/fgetln.3
index d483c09..c01d1ef 100644
--- a/man/fgetln.3
+++ b/man/fgetln.3
@@ -54,7 +54,7 @@ character.
The length of the line, including the final newline,
is stored in the memory location to which
.Fa len
-points.
+points and is guaranteed to be greater than 0 upon successful completion.
(Note, however, that if the line is the last
in a file that does not end in a newline,
the returned text will not contain a newline.)
diff --git a/src/fgetln.c b/src/fgetln.c
index 6e3d000..317880d 100644
--- a/src/fgetln.c
+++ b/src/fgetln.c
@@ -39,6 +39,7 @@ fgetln (FILE *stream, size_t *len)
ssize_t nread;
nread = getline(&line, &line_len, stream);
+ /* Note: the getdelim/getline API ensures nread != 0. */
if (nread == -1) {
*len = 0;
return NULL;