diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-03-30 11:54:57 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-03-30 11:56:29 +0200 |
commit | 35743ea1ad1829a66605852b7e0ba6fb7ee3cc56 (patch) | |
tree | 89d12d92c128d274d33f64070e717e12ca8b7e56 /src/libs/utils/consoleprocess_unix.cpp | |
parent | 776c599384a2a528aab2b84935dfc0020e0ff728 (diff) | |
download | qt-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.cpp | 13 |
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 |