diff options
Diffstat (limited to 'firmware/common')
-rw-r--r-- | firmware/common/file.c | 16 | ||||
-rw-r--r-- | firmware/common/file.h | 6 |
2 files changed, 9 insertions, 13 deletions
diff --git a/firmware/common/file.c b/firmware/common/file.c index 82a33ada2d..6d60595ab1 100644 --- a/firmware/common/file.c +++ b/firmware/common/file.c | |||
@@ -83,17 +83,13 @@ int open(const char* pathname, int flags) | |||
83 | errno = EMFILE; | 83 | errno = EMFILE; |
84 | return -2; | 84 | return -2; |
85 | } | 85 | } |
86 | memset(&openfiles[fd], 0, sizeof (struct filedesc)); | ||
86 | 87 | ||
87 | if (flags & O_RDONLY) { | 88 | if (flags & (O_RDWR | O_WRONLY)) { |
88 | openfiles[fd].write = false; | 89 | openfiles[fd].write = true; |
89 | } | 90 | |
90 | else { | 91 | if (flags & O_TRUNC) |
91 | if (flags & (O_RDWR | O_WRONLY)) { | 92 | openfiles[fd].trunc = true; |
92 | openfiles[fd].write = true; | ||
93 | |||
94 | if (flags & O_TRUNC) | ||
95 | openfiles[fd].trunc = true; | ||
96 | } | ||
97 | } | 93 | } |
98 | openfiles[fd].busy = true; | 94 | openfiles[fd].busy = true; |
99 | 95 | ||
diff --git a/firmware/common/file.h b/firmware/common/file.h index 2effe31ac9..bf7ad82ff7 100644 --- a/firmware/common/file.h +++ b/firmware/common/file.h | |||
@@ -37,9 +37,9 @@ | |||
37 | #define O_RDONLY 0 | 37 | #define O_RDONLY 0 |
38 | #define O_WRONLY 1 | 38 | #define O_WRONLY 1 |
39 | #define O_RDWR 2 | 39 | #define O_RDWR 2 |
40 | #define O_CREAT 3 | 40 | #define O_CREAT 4 |
41 | #define O_APPEND 4 | 41 | #define O_APPEND 8 |
42 | #define O_TRUNC 5 | 42 | #define O_TRUNC 0x10 |
43 | #endif | 43 | #endif |
44 | 44 | ||
45 | #if defined(__MINGW32__) && defined(SIMULATOR) | 45 | #if defined(__MINGW32__) && defined(SIMULATOR) |