* 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.
+2007-08-23 Jim Meyering <jim@meyering.net>
+
+ 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.
+
2007-08-22 Eric Blake <ebb9@byu.net>
Getline touchups.
{
ssize_t result;
size_t cur_len = 0;
- int e; /* Preserve errno across funlockfile. */
if (lineptr == NULL || n == NULL || fp == NULL)
{
if (*lineptr == NULL)
{
result = -1;
- e = ENOMEM;
goto unlock_return;
}
}
if (i == EOF)
{
result = -1;
- e = errno;
break;
}
if (cur_len + 1 >= needed)
{
result = -1;
- e = EOVERFLOW;
+ errno = EOVERFLOW;
goto unlock_return;
}
if (new_lineptr == NULL)
{
result = -1;
- e = ENOMEM;
goto unlock_return;
}
result = cur_len ? cur_len : result;
unlock_return:
- funlockfile (fp);
- if (result == -1)
- errno = e;
+ funlockfile (fp); /* doesn't set errno */
+
return result;
}