summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-11-11 16:08:28 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-11-11 16:08:28 +0000
commit4059ea61d443b25cd18b6f194f0e5969463c460e (patch)
treec8b2672462ea23cdbe0e5916914a6c5709e489f4
parent4cde66765999976b43d46366e495bf353d35736e (diff)
downloadrockbox-4059ea61d443b25cd18b6f194f0e5969463c460e.zip
rockbox-4059ea61d443b25cd18b6f194f0e5969463c460e.tar.gz
rockbox-4059ea61d443b25cd18b6f194f0e5969463c460e.tar.bz2
rockbox-4059ea61d443b25cd18b6f194f0e5969463c460e.tar.xz
Bugfix: Flags work better when they're binary...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2830 a1c6a512-1295-4272-9138-f99709370657
-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 82a33ad..6d60595 100644
--- a/firmware/common/file.c
+++ b/firmware/common/file.c
@@ -83,17 +83,13 @@ int open(const char* pathname, int flags)
errno = EMFILE;
return -2;
}
+ memset(&openfiles[fd], 0, sizeof (struct filedesc));
- if (flags & O_RDONLY) {
- openfiles[fd].write = false;
- }
- else {
- if (flags & (O_RDWR | O_WRONLY)) {
- openfiles[fd].write = true;
-
- if (flags & O_TRUNC)
- openfiles[fd].trunc = true;
- }
+ if (flags & (O_RDWR | O_WRONLY)) {
+ openfiles[fd].write = true;
+
+ if (flags & O_TRUNC)
+ openfiles[fd].trunc = true;
}
openfiles[fd].busy = true;
diff --git a/firmware/common/file.h b/firmware/common/file.h
index 2effe31..bf7ad82 100644
--- a/firmware/common/file.h
+++ b/firmware/common/file.h
@@ -37,9 +37,9 @@
#define O_RDONLY 0
#define O_WRONLY 1
#define O_RDWR 2
-#define O_CREAT 3
-#define O_APPEND 4
-#define O_TRUNC 5
+#define O_CREAT 4
+#define O_APPEND 8
+#define O_TRUNC 0x10
#endif
#if defined(__MINGW32__) && defined(SIMULATOR)