From 0a1d7c28b7e9da555d26d489cde2da26e2cc9ca0 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Thu, 6 May 2010 17:35:13 +0000 Subject: 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 --- apps/plugins/doom/rockdoom.c | 13 ++++++++++--- apps/plugins/doom/rockmacros.h | 6 +++--- 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'apps/plugins/doom') 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) } #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 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 ); #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 -- cgit v1.2.3