diff options
Diffstat (limited to 'src/corelib/io/qfile.cpp')
| -rw-r--r-- | src/corelib/io/qfile.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp index e4888e9523e..33b0b2eb66a 100644 --- a/src/corelib/io/qfile.cpp +++ b/src/corelib/io/qfile.cpp @@ -893,9 +893,9 @@ bool QFile::open(OpenMode mode) qWarning("QFile::open: File (%s) already open", qPrintable(fileName())); return false; } - if (mode & Append) + // Either Append or NewOnly implies WriteOnly + if (mode & (Append | NewOnly)) mode |= WriteOnly; - unsetError(); if ((mode & (ReadOnly | WriteOnly)) == 0) { qWarning("QIODevice::open: File access not specified"); @@ -965,7 +965,8 @@ bool QFile::open(FILE *fh, OpenMode mode, FileHandleFlags handleFlags) qWarning("QFile::open: File (%s) already open", qPrintable(fileName())); return false; } - if (mode & Append) + // Either Append or NewOnly implies WriteOnly + if (mode & (Append | NewOnly)) mode |= WriteOnly; unsetError(); if ((mode & (ReadOnly | WriteOnly)) == 0) { @@ -1023,7 +1024,8 @@ bool QFile::open(int fd, OpenMode mode, FileHandleFlags handleFlags) qWarning("QFile::open: File (%s) already open", qPrintable(fileName())); return false; } - if (mode & Append) + // Either Append or NewOnly implies WriteOnly + if (mode & (Append | NewOnly)) mode |= WriteOnly; unsetError(); if ((mode & (ReadOnly | WriteOnly)) == 0) { |
