diff options
Diffstat (limited to 'newlib/libc/stdio/fgetpos.c')
-rw-r--r-- | newlib/libc/stdio/fgetpos.c | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/newlib/libc/stdio/fgetpos.c b/newlib/libc/stdio/fgetpos.c index 21a63789d..26c69bf22 100644 --- a/newlib/libc/stdio/fgetpos.c +++ b/newlib/libc/stdio/fgetpos.c @@ -1,21 +1,4 @@ /* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * advertising materials, and other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* FUNCTION <<fgetpos>>---record position in a stream or file @@ -71,31 +54,32 @@ conforming C implementations may return a different result from No supporting OS subroutines are required. */ -#include <_ansi.h> -#include <reent.h> #include <stdio.h> int -_DEFUN(_fgetpos_r, (ptr, fp, pos), - struct _reent * ptr _AND - FILE * fp _AND - _fpos_t * pos) +_DEFUN (_fgetpos_r, (ptr, fp, pos), + struct _reent * ptr _AND + FILE * fp _AND + _fpos_t * pos) { + _flockfile(fp); *pos = _ftell_r (ptr, fp); if (*pos != -1) { + _funlockfile(fp); return 0; } + _funlockfile(fp); return 1; } #ifndef _REENT_ONLY int -_DEFUN(fgetpos, (fp, pos), - FILE * fp _AND - _fpos_t * pos) +_DEFUN (fgetpos, (fp, pos), + FILE * fp _AND + _fpos_t * pos) { return _fgetpos_r (_REENT, fp, pos); } |