summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2007-08-23 08:33:16 +0000
committerJim Meyering <jim@meyering.net>2007-08-23 08:33:16 +0000
commit3156a948b9bb9d2f15d636c86864b3baa182de2a (patch)
tree261fee470ba27a605aa7aa6aa6fe39717bbd5d0a /lib
parent33c8286ea93bec94c46d777a77d471babd3698e0 (diff)
downloadgnulib-3156a948b9bb9d2f15d636c86864b3baa182de2a.tar.gz
Getdelim touchup.
* lib/getdelim.c (getdelim): Don't bother to save/restore errno around the funlockfile call, since funlockfile never sets errno. Don't set errno upon failed realloc.
Diffstat (limited to 'lib')
-rw-r--r--lib/getdelim.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/lib/getdelim.c b/lib/getdelim.c
index ded1d9cf58..0547c7fae2 100644
--- a/lib/getdelim.c
+++ b/lib/getdelim.c
@@ -58,7 +58,6 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
{
ssize_t result;
size_t cur_len = 0;
- int e; /* Preserve errno across funlockfile. */
if (lineptr == NULL || n == NULL || fp == NULL)
{
@@ -75,7 +74,6 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
if (*lineptr == NULL)
{
result = -1;
- e = ENOMEM;
goto unlock_return;
}
}
@@ -88,7 +86,6 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
if (i == EOF)
{
result = -1;
- e = errno;
break;
}
@@ -105,7 +102,7 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
if (cur_len + 1 >= needed)
{
result = -1;
- e = EOVERFLOW;
+ errno = EOVERFLOW;
goto unlock_return;
}
@@ -113,7 +110,6 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
if (new_lineptr == NULL)
{
result = -1;
- e = ENOMEM;
goto unlock_return;
}
@@ -131,8 +127,7 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
result = cur_len ? cur_len : result;
unlock_return:
- funlockfile (fp);
- if (result == -1)
- errno = e;
+ funlockfile (fp); /* doesn't set errno */
+
return result;
}