diff options
| author | Thomas Martitz <kugel@rockbox.org> | 2010-05-06 17:35:13 +0000 |
|---|---|---|
| committer | Thomas Martitz <kugel@rockbox.org> | 2010-05-06 17:35:13 +0000 |
| commit | 0a1d7c28b7e9da555d26d489cde2da26e2cc9ca0 (patch) | |
| tree | a21521e6e4b8fe0131c4d9e8bae6d8cc78125fe9 /apps/plugins/doom | |
| parent | c61e89c0eda126c2c1a4a3983520c35fe30db156 (diff) | |
| download | rockbox-0a1d7c28b7e9da555d26d489cde2da26e2cc9ca0.zip rockbox-0a1d7c28b7e9da555d26d489cde2da26e2cc9ca0.tar.gz rockbox-0a1d7c28b7e9da555d26d489cde2da26e2cc9ca0.tar.bz2 rockbox-0a1d7c28b7e9da555d26d489cde2da26e2cc9ca0.tar.xz | |
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.c | 13 | ||||
| -rw-r--r-- | apps/plugins/doom/rockmacros.h | 6 |
2 files changed, 13 insertions, 6 deletions
diff --git a/apps/plugins/doom/rockdoom.c b/apps/plugins/doom/rockdoom.c index 21efbc4..1383a2b 100644 --- a/apps/plugins/doom/rockdoom.c +++ b/apps/plugins/doom/rockdoom.c @@ -63,13 +63,20 @@ int fileexists(const char * fname) } #ifndef SIMULATOR -int my_open(const char *file, int flags) +int my_open(const char *file, int flags, ...) { if(fpoint==8) return -1; #undef open - filearray[fpoint]=rb->open(file, flags); - + if (flags & O_CREAT) + { + va_list ap; + va_start(ap, flags); + filearray[fpoint]=rb->open(file, flags, va_arg(ap, mode_t)); + va_end(ap); + } + else + filearray[fpoint]=rb->open(file, flags); if(filearray[fpoint]<0) return filearray[fpoint]; diff --git a/apps/plugins/doom/rockmacros.h b/apps/plugins/doom/rockmacros.h index 98f908d..e066fe8 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 ); #define read_line(a,b,c) rb->read_line((a),(b),(c)) #ifdef SIMULATOR -#define open(a,b) rb->open((a),(b)) +#define open(a, ...) rb->open((a), __VA_ARGS__) #define close(a) rb->close((a)) #else -int my_open(const char *file, int flags); +int my_open(const char *file, int flags, ...); int my_close(int id); -#define open(a,b) my_open((a),(b)) +#define open(a, ...) my_open((a), __VA_ARGS__) #define close(a) my_close((a)) #endif |