blob: fa2a39b0c0e8b634c00329853b024f16088d1efc [file] [log] [blame]
Jack Jansen426fa791995-08-07 14:02:12 +00001/*
2** mwfopenrf - Open resource fork as stdio file for CodeWarrior.
3**
4** Jack Jansen, CWI, August 1995.
5*/
6
7#ifdef __MWERKS__
8#include <stdio.h>
9#include <unix.h>
10#include <errno.h>
11#include "errno_unix.h"
12
13FILE *
14fopenRF(name, mode)
15 char *name;
16 char *mode;
17{
18 int fd;
19 FILE *fp;
20 int modebits = -1;
21 int extramodebits;
22 char *modep;
23
24 for(modep=mode; *modep; modep++) {
25 switch(*modep) {
26 case 'r': modebits = O_RDONLY; break;
27 case 'w': modebits = O_WRONLY; extramodebits |= O_CREAT|O_TRUNC; break;
28 case 'a': modebits = O_RDONLY;
29 extramodebits |= O_CREAT|O_APPEND;
30 extramodebits &= ~O_TRUNC;
31 break;
32 case '+': modebits = O_RDWR;
33 extramodebits &= ~O_TRUNC;
34 break;
35 case 'b': extramodebits |= O_BINARY;
36 break;
37 default:
38 errno = EINVAL;
39 return NULL;
40 }
41 }
42 fd = open(name, modebits|extramodebits|O_RSRC);
43 if ( fd < 0 )
44 return NULL;
45 return fdopen(fd, mode);
46}
47#endif /* __MWERKS__ */