summaryrefslogtreecommitdiff
path: root/apps/plugins/doom
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-05-06 17:35:13 +0000
committerThomas Martitz <kugel@rockbox.org>2010-05-06 17:35:13 +0000
commit0a1d7c28b7e9da555d26d489cde2da26e2cc9ca0 (patch)
treea21521e6e4b8fe0131c4d9e8bae6d8cc78125fe9 /apps/plugins/doom
parentc61e89c0eda126c2c1a4a3983520c35fe30db156 (diff)
downloadrockbox-0a1d7c28b7e9da555d26d489cde2da26e2cc9ca0.tar.gz
rockbox-0a1d7c28b7e9da555d26d489cde2da26e2cc9ca0.zip
Make open() posix compliant api-wise. A few calls (those with O_CREAT) need the additional optional mode parameter so add it. Impact for the core is almost zero, as open() is a wrapper macro for the real open function which doesn't take the variable parameter.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25844 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/doom')
-rw-r--r--apps/plugins/doom/rockdoom.c13
-rw-r--r--apps/plugins/doom/rockmacros.h6
2 files changed, 13 insertions, 6 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
66int my_open(const char *file, int flags) 66int 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
diff --git a/apps/plugins/doom/rockmacros.h b/apps/plugins/doom/rockmacros.h
index 98f908dc1d..e066fe861c 100644
--- a/apps/plugins/doom/rockmacros.h
+++ b/apps/plugins/doom/rockmacros.h
@@ -39,12 +39,12 @@ char *my_strtok( char * s, const char * delim );
39#define read_line(a,b,c) rb->read_line((a),(b),(c)) 39#define read_line(a,b,c) rb->read_line((a),(b),(c))
40 40
41#ifdef SIMULATOR 41#ifdef SIMULATOR
42#define open(a,b) rb->open((a),(b)) 42#define open(a, ...) rb->open((a), __VA_ARGS__)
43#define close(a) rb->close((a)) 43#define close(a) rb->close((a))
44#else 44#else
45int my_open(const char *file, int flags); 45int my_open(const char *file, int flags, ...);
46int my_close(int id); 46int my_close(int id);
47#define open(a,b) my_open((a),(b)) 47#define open(a, ...) my_open((a), __VA_ARGS__)
48#define close(a) my_close((a)) 48#define close(a) my_close((a))
49#endif 49#endif
50 50