]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Mwerks version of fopenRF.
authorJack Jansen <jack.jansen@cwi.nl>
Mon, 7 Aug 1995 14:02:12 +0000 (14:02 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Mon, 7 Aug 1995 14:02:12 +0000 (14:02 +0000)
Mac/mwerks/mwfopenrf.c [new file with mode: 0644]

diff --git a/Mac/mwerks/mwfopenrf.c b/Mac/mwerks/mwfopenrf.c
new file mode 100644 (file)
index 0000000..fa2a39b
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+** mwfopenrf - Open resource fork as stdio file for CodeWarrior.
+**
+** Jack Jansen, CWI, August 1995.
+*/
+
+#ifdef __MWERKS__
+#include <stdio.h>
+#include <unix.h>
+#include <errno.h>
+#include "errno_unix.h"
+
+FILE *
+fopenRF(name, mode)
+       char *name;
+       char *mode;
+{
+       int fd;
+       FILE *fp;
+       int modebits = -1;
+       int extramodebits;
+       char *modep;
+       
+       for(modep=mode; *modep; modep++) {
+               switch(*modep) {
+               case 'r': modebits = O_RDONLY; break;
+               case 'w': modebits = O_WRONLY; extramodebits |= O_CREAT|O_TRUNC; break;
+               case 'a': modebits = O_RDONLY;
+                                 extramodebits |= O_CREAT|O_APPEND;
+                                 extramodebits &= ~O_TRUNC;
+                                 break;
+               case '+': modebits = O_RDWR; 
+                                 extramodebits &= ~O_TRUNC;
+                                 break;
+               case 'b': extramodebits |= O_BINARY;
+                                 break;
+               default:
+                                 errno = EINVAL;
+                                 return NULL;
+               }
+       }
+       fd = open(name, modebits|extramodebits|O_RSRC);
+       if ( fd < 0 )
+               return NULL;
+       return fdopen(fd, mode);
+}
+#endif /* __MWERKS__ */