summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qfsfileengine.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-11-19 16:35:06 (GMT)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-11-19 16:35:06 (GMT)
commit901b0391d15ab72830fcfd73048eeff03fb9ed07 (patch)
treecf5f2f2eab83301bf08952426f25eb54a90e9ac4 /src/corelib/io/qfsfileengine.cpp
parentbb4e301ce6762ab300618c579bd65ea1ee17dc2d (diff)
parent34044853d4315309920a481a585f96ba7b3fb140 (diff)
downloadQt-901b0391d15ab72830fcfd73048eeff03fb9ed07.zip
Qt-901b0391d15ab72830fcfd73048eeff03fb9ed07.tar.gz
Qt-901b0391d15ab72830fcfd73048eeff03fb9ed07.tar.bz2
Merge remote branch 'mainline/4.6' into 4.6
Diffstat (limited to 'src/corelib/io/qfsfileengine.cpp')
-rw-r--r--src/corelib/io/qfsfileengine.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp
index 9ab831f..3cf9b7e 100644
--- a/src/corelib/io/qfsfileengine.cpp
+++ b/src/corelib/io/qfsfileengine.cpp
@@ -762,12 +762,10 @@ qint64 QFSFileEnginePrivate::writeFdFh(const char *data, qint64 len)
// Buffered stdlib mode.
size_t result;
- bool eof;
do {
result = fwrite(data + writtenBytes, 1, size_t(len - writtenBytes), fh);
writtenBytes += result;
- eof = feof(fh);
- } while (!eof && (result == 0 ? errno == EINTR : writtenBytes < len));
+ } while (result == 0 ? errno == EINTR : writtenBytes < len);
} else if (fd != -1) {
// Unbuffered stdio mode.
@@ -783,7 +781,7 @@ qint64 QFSFileEnginePrivate::writeFdFh(const char *data, qint64 len)
|| (result > 0 && (writtenBytes += result) < len));
}
- if (writtenBytes == 0) {
+ if (len && writtenBytes == 0) {
writtenBytes = -1;
q->setError(errno == ENOSPC ? QFile::ResourceError : QFile::WriteError, qt_error_string(errno));
}