summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/common/file.c16
-rw-r--r--firmware/common/file.h6
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)