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.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.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 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 | ||
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 |
45 | int my_open(const char *file, int flags); | 45 | int my_open(const char *file, int flags, ...); |
46 | int my_close(int id); | 46 | int 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 | ||