diff options
author | Jim Meyering <jim@meyering.net> | 2007-08-23 08:33:16 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2007-08-23 08:33:16 +0000 |
commit | 3156a948b9bb9d2f15d636c86864b3baa182de2a (patch) | |
tree | 261fee470ba27a605aa7aa6aa6fe39717bbd5d0a /lib | |
parent | 33c8286ea93bec94c46d777a77d471babd3698e0 (diff) | |
download | gnulib-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.c | 11 |
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; } |