diff options
Diffstat (limited to 'newlib/libc/stdio/flags.c')
-rw-r--r-- | newlib/libc/stdio/flags.c | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/newlib/libc/stdio/flags.c b/newlib/libc/stdio/flags.c deleted file mode 100644 index 26d2f82fd..000000000 --- a/newlib/libc/stdio/flags.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 1990 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 MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -/* No user fns here. Pesch 15apr92 */ - -#include <_ansi.h> -#include <stdio.h> -#include <time.h> -#include <fcntl.h> -#include <errno.h> -#include <sys/types.h> - -/* - * Return the (stdio) flags for a given mode. Store the flags - * to be passed to an open() syscall through *optr. - * Return 0 on error. - */ - -int -_DEFUN(__sflags, (ptr, mode, optr), - struct _reent *ptr _AND - register char *mode _AND - int *optr) -{ - register int ret, m, o; - - switch (mode[0]) - { - case 'r': /* open for reading */ - ret = __SRD; - m = O_RDONLY; - o = 0; - break; - - case 'w': /* open for writing */ - ret = __SWR; - m = O_WRONLY; - o = O_CREAT | O_TRUNC; - break; - - case 'a': /* open for appending */ - ret = __SWR | __SAPP; - m = O_WRONLY; - o = O_CREAT | O_APPEND; - break; - default: /* illegal mode */ - ptr->_errno = EINVAL; - return (0); - } - if (mode[1] && (mode[1] == '+' || mode[2] == '+')) - { - ret = (ret & ~(__SRD | __SWR)) | __SRW; - m = O_RDWR; - } - if (mode[1] && (mode[1] == 'b' || mode[2] == 'b')) - { -#ifdef O_BINARY - m |= O_BINARY; -#endif - } -#ifdef __CYGWIN__ - else if (mode[1] && (mode[1] == 't' || mode[2] == 't')) -#else - else -#endif - { -#ifdef O_TEXT - m |= O_TEXT; -#endif - } - *optr = m | o; - return ret; -} |