diff options
Diffstat (limited to 'apps/plugins/doom/rockdoom.c')
-rw-r--r-- | apps/plugins/doom/rockdoom.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/apps/plugins/doom/rockdoom.c b/apps/plugins/doom/rockdoom.c index 21efbc4147..1383a2b520 100644 --- a/apps/plugins/doom/rockdoom.c +++ b/apps/plugins/doom/rockdoom.c | |||
@@ -63,13 +63,20 @@ int fileexists(const char * fname) | |||
63 | } | 63 | } |
64 | 64 | ||
65 | #ifndef SIMULATOR | 65 | #ifndef SIMULATOR |
66 | int my_open(const char *file, int flags) | 66 | int my_open(const char *file, int flags, ...) |
67 | { | 67 | { |
68 | if(fpoint==8) | 68 | if(fpoint==8) |
69 | return -1; | 69 | return -1; |
70 | #undef open | 70 | #undef open |
71 | filearray[fpoint]=rb->open(file, flags); | 71 | if (flags & O_CREAT) |
72 | 72 | { | |
73 | va_list ap; | ||
74 | va_start(ap, flags); | ||
75 | filearray[fpoint]=rb->open(file, flags, va_arg(ap, mode_t)); | ||
76 | va_end(ap); | ||
77 | } | ||
78 | else | ||
79 | filearray[fpoint]=rb->open(file, flags); | ||
73 | if(filearray[fpoint]<0) | 80 | if(filearray[fpoint]<0) |
74 | return filearray[fpoint]; | 81 | return filearray[fpoint]; |
75 | 82 | ||