summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdio/fdopen.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdio/fdopen.c')
-rw-r--r--newlib/libc/stdio/fdopen.c54
1 files changed, 35 insertions, 19 deletions
diff --git a/newlib/libc/stdio/fdopen.c b/newlib/libc/stdio/fdopen.c
index 8c1555d34..f4fc551c4 100644
--- a/newlib/libc/stdio/fdopen.c
+++ b/newlib/libc/stdio/fdopen.c
@@ -1,4 +1,21 @@
/*
+ * 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
@@ -10,9 +27,9 @@ INDEX
ANSI_SYNOPSIS
#include <stdio.h>
FILE *fdopen(int <[fd]>, const char *<[mode]>);
- FILE *_fdopen_r(void *<[reent]>,
- int <[fd]>, const char *<[mode]>);
-
+ FILE *_fdopen_r(struct _reent *<[reent]>,
+ int <[fd]>, const char *<[mode]>);
+
TRAD_SYNOPSIS
#include <stdio.h>
FILE *fdopen(<[fd]>, <[mode]>)
@@ -20,7 +37,7 @@ TRAD_SYNOPSIS
char *<[mode]>;
FILE *_fdopen_r(<[reent]>, <[fd]>, <[mode]>)
- char *<[reent]>;
+ struct _reent *<[reent]>;
int <[fd]>;
char *<[mode]>);
@@ -37,21 +54,20 @@ 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;
@@ -77,7 +93,7 @@ _DEFUN (_fdopen_r, (ptr, fd, mode),
if ((fp = __sfp (ptr)) == 0)
return 0;
- _flockfile(fp);
+ _flockfile (fp);
fp->_flags = flags;
/*
@@ -107,23 +123,23 @@ _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);
+ _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);
}