diff options
| author | Andrey A. Chernov <ache@FreeBSD.org> | 2001-08-31 20:17:32 +0000 |
|---|---|---|
| committer | Andrey A. Chernov <ache@FreeBSD.org> | 2001-08-31 20:17:32 +0000 |
| commit | c4b2cc78e35fcbf53d599c0d806af9f4cd1cd907 (patch) | |
| tree | 104b91d26a1a0d36d2939921a4dd77f59cf77876 | |
| parent | 4fd606bfba6c98c2b0728d56a876732076712fdb (diff) | |
Notes
| -rw-r--r-- | lib/libc/stdio/ftell.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/lib/libc/stdio/ftell.c b/lib/libc/stdio/ftell.c index a0b5fa8d9ff7d..9f1e106a51bd8 100644 --- a/lib/libc/stdio/ftell.c +++ b/lib/libc/stdio/ftell.c @@ -114,8 +114,8 @@ get_real_pos: * those from ungetc) cause the position to be * smaller than that in the underlying object. */ - pos -= fp->_r; - if (pos < 0) { + if ((pos -= fp->_r) < 0 || + (HASUB(fp) && (pos -= fp->_ur) < 0)) { fp->_p = fp->_bf._base; fp->_r = 0; if (HASUB(fp)) @@ -123,16 +123,6 @@ get_real_pos: if (spos == -1) goto get_real_pos; pos = spos; - } else if (HASUB(fp)) { - pos -= fp->_ur; - if (pos < 0) { - fp->_p = fp->_bf._base; - fp->_r = 0; - FREEUB(fp); - if (spos == -1) - goto get_real_pos; - pos = spos; - } } } else if ((fp->_flags & __SWR) && fp->_p != NULL) { /* |
