summaryrefslogtreecommitdiff
path: root/src/libs/utils/consoleprocess_unix.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-03-30 11:54:57 +0200
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-03-30 11:56:29 +0200
commit35743ea1ad1829a66605852b7e0ba6fb7ee3cc56 (patch)
tree89d12d92c128d274d33f64070e717e12ca8b7e56 /src/libs/utils/consoleprocess_unix.cpp
parent776c599384a2a528aab2b84935dfc0020e0ff728 (diff)
downloadqt-creator-35743ea1ad1829a66605852b7e0ba6fb7ee3cc56.tar.gz
add disk full error handling to consoleprocess
Diffstat (limited to 'src/libs/utils/consoleprocess_unix.cpp')
-rw-r--r--src/libs/utils/consoleprocess_unix.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/libs/utils/consoleprocess_unix.cpp b/src/libs/utils/consoleprocess_unix.cpp
index c4c745fc9b..737dc334bd 100644
--- a/src/libs/utils/consoleprocess_unix.cpp
+++ b/src/libs/utils/consoleprocess_unix.cpp
@@ -173,11 +173,18 @@ bool ConsoleProcess::start(const QString &program, const QString &args)
d->m_tempFile = 0;
return false;
}
+ QByteArray contents;
foreach (const QString &var, env) {
- d->m_tempFile->write(var.toLocal8Bit());
- d->m_tempFile->write("", 1);
+ QByteArray l8b = var.toLocal8Bit();
+ contents.append(l8b.constData(), l8b.size() + 1);
+ }
+ if (d->m_tempFile->write(contents) != contents.size() || !d->m_tempFile->flush()) {
+ stubServerShutdown();
+ emit processMessage(msgCannotWriteTempFile(), true);
+ delete d->m_tempFile;
+ d->m_tempFile = 0;
+ return false;
}
- d->m_tempFile->flush();
}
xtermArgs