Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdio/fdopen.c')
-rw-r--r--newlib/libc/stdio/fdopen.c56
1 files changed, 18 insertions, 38 deletions
diff --git a/newlib/libc/stdio/fdopen.c b/newlib/libc/stdio/fdopen.c
index f4fc551c4..bd4018b69 100644
--- a/newlib/libc/stdio/fdopen.c
+++ b/newlib/libc/stdio/fdopen.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
<<fdopen>>---turn open file into a stream
@@ -27,9 +10,9 @@ INDEX
ANSI_SYNOPSIS
#include <stdio.h>
FILE *fdopen(int <[fd]>, const char *<[mode]>);
- FILE *_fdopen_r(struct _reent *<[reent]>,
- int <[fd]>, const char *<[mode]>);
-
+ FILE *_fdopen_r(void *<[reent]>,
+ int <[fd]>, const char *<[mode]>);
+
TRAD_SYNOPSIS
#include <stdio.h>
FILE *fdopen(<[fd]>, <[mode]>)
@@ -37,7 +20,7 @@ TRAD_SYNOPSIS
char *<[mode]>;
FILE *_fdopen_r(<[reent]>, <[fd]>, <[mode]>)
- struct _reent *<[reent]>;
+ char *<[reent]>;
int <[fd]>;
char *<[mode]>);
@@ -54,20 +37,21 @@ PORTABILITY
<<fdopen>> is ANSI.
*/
-#include <_ansi.h>
-#include <reent.h>
#include <sys/types.h>
#include <sys/fcntl.h>
+
#include <stdio.h>
#include <errno.h>
#include "local.h"
#include <_syslist.h>
+extern int __sflags ();
+
FILE *
-_DEFUN(_fdopen_r, (ptr, fd, mode),
- struct _reent *ptr _AND
- int fd _AND
- _CONST char *mode)
+_DEFUN (_fdopen_r, (ptr, fd, mode),
+ struct _reent *ptr _AND
+ int fd _AND
+ _CONST char *mode)
{
register FILE *fp;
int flags, oflags;
@@ -80,7 +64,7 @@ _DEFUN(_fdopen_r, (ptr, fd, mode),
/* make sure the mode the user wants is a subset of the actual mode */
#ifdef HAVE_FCNTL
- if ((fdflags = _fcntl_r (ptr, fd, F_GETFL, 0)) < 0)
+ if ((fdflags = _fcntl (fd, F_GETFL, 0)) < 0)
return 0;
fdmode = fdflags & O_ACCMODE;
if (fdmode != O_RDWR && (fdmode != (oflags & O_ACCMODE)))
@@ -92,9 +76,6 @@ _DEFUN(_fdopen_r, (ptr, fd, mode),
if ((fp = __sfp (ptr)) == 0)
return 0;
-
- _flockfile (fp);
-
fp->_flags = flags;
/*
* If opened for appending, but underlying descriptor
@@ -123,23 +104,22 @@ _DEFUN(_fdopen_r, (ptr, fd, mode),
#ifdef __SCLE
/* Explicit given mode results in explicit setting mode on fd */
if (oflags & O_BINARY)
- setmode (fp->_file, O_BINARY);
+ setmode(fp->_file, O_BINARY);
else if (oflags & O_TEXT)
- setmode (fp->_file, O_TEXT);
- if (__stextmode (fp->_file))
+ setmode(fp->_file, O_TEXT);
+ if (__stextmode(fp->_file))
fp->_flags |= __SCLE;
#endif
- _funlockfile (fp);
return fp;
}
#ifndef _REENT_ONLY
FILE *
-_DEFUN(fdopen, (fd, mode),
- int fd _AND
- _CONST char *mode)
+_DEFUN (fdopen, (fd, mode),
+ int fd _AND
+ _CONST char *mode)
{
return _fdopen_r (_REENT, fd, mode);
}