summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdio/fseek.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdio/fseek.c')
-rw-r--r--newlib/libc/stdio/fseek.c43
1 files changed, 23 insertions, 20 deletions
diff --git a/newlib/libc/stdio/fseek.c b/newlib/libc/stdio/fseek.c
index 4747e2156..b3df7f04e 100644
--- a/newlib/libc/stdio/fseek.c
+++ b/newlib/libc/stdio/fseek.c
@@ -98,6 +98,8 @@ Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
<<lseek>>, <<read>>, <<sbrk>>, <<write>>.
*/
+#include <_ansi.h>
+#include <reent.h>
#include <stdio.h>
#include <time.h>
#include <fcntl.h>
@@ -114,19 +116,20 @@ Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
*/
int
-_DEFUN (_fseek_r, (ptr, fp, offset, whence),
- struct _reent *ptr _AND
- register FILE *fp _AND
- long offset _AND
- int whence)
+_DEFUN(_fseek_r, (ptr, fp, offset, whence),
+ struct _reent *ptr _AND
+ register FILE *fp _AND
+ long offset _AND
+ int whence)
{
- _fpos_t _EXFUN ((*seekfn), (void *, _fpos_t, int));
- _fpos_t target, curoff;
+ _fpos_t _EXFUN((*seekfn), (_PTR, _fpos_t, int));
+ _fpos_t target;
+ _fpos_t curoff = 0;
size_t n;
struct stat st;
int havepos;
- _flockfile(fp);
+ _flockfile (fp);
/* Make sure stdio is set up. */
@@ -146,7 +149,7 @@ _DEFUN (_fseek_r, (ptr, fp, offset, whence),
if ((seekfn = fp->_seek) == NULL)
{
ptr->_errno = ESPIPE; /* ??? */
- _funlockfile(fp);
+ _funlockfile (fp);
return EOF;
}
@@ -163,7 +166,7 @@ _DEFUN (_fseek_r, (ptr, fp, offset, whence),
* we have to first find the current stream offset a la
* ftell (see ftell for details).
*/
- fflush(fp); /* may adjust seek offset on append stream */
+ fflush (fp); /* may adjust seek offset on append stream */
if (fp->_flags & __SOFF)
curoff = fp->_offset;
else
@@ -171,7 +174,7 @@ _DEFUN (_fseek_r, (ptr, fp, offset, whence),
curoff = (*seekfn) (fp->_cookie, (_fpos_t) 0, SEEK_CUR);
if (curoff == -1L)
{
- _funlockfile(fp);
+ _funlockfile (fp);
return EOF;
}
}
@@ -196,7 +199,7 @@ _DEFUN (_fseek_r, (ptr, fp, offset, whence),
default:
ptr->_errno = EINVAL;
- _funlockfile(fp);
+ _funlockfile (fp);
return (EOF);
}
@@ -306,7 +309,7 @@ _DEFUN (_fseek_r, (ptr, fp, offset, whence),
if (HASUB (fp))
FREEUB (fp);
fp->_flags &= ~__SEOF;
- _funlockfile(fp);
+ _funlockfile (fp);
return 0;
}
@@ -335,7 +338,7 @@ _DEFUN (_fseek_r, (ptr, fp, offset, whence),
fp->_p += n;
fp->_r -= n;
}
- _funlockfile(fp);
+ _funlockfile (fp);
return 0;
/*
@@ -346,7 +349,7 @@ _DEFUN (_fseek_r, (ptr, fp, offset, whence),
dumb:
if (fflush (fp) || (*seekfn) (fp->_cookie, offset, whence) == POS_ERR)
{
- _funlockfile(fp);
+ _funlockfile (fp);
return EOF;
}
/* success: clear EOF indicator and discard ungetc() data */
@@ -356,17 +359,17 @@ dumb:
fp->_r = 0;
/* fp->_w = 0; *//* unnecessary (I think...) */
fp->_flags &= ~__SEOF;
- _funlockfile(fp);
+ _funlockfile (fp);
return 0;
}
#ifndef _REENT_ONLY
int
-_DEFUN (fseek, (fp, offset, whence),
- register FILE *fp _AND
- long offset _AND
- int whence)
+_DEFUN(fseek, (fp, offset, whence),
+ register FILE *fp _AND
+ long offset _AND
+ int whence)
{
return _fseek_r (_REENT, fp, offset, whence);
}