about summary refs log tree commit diff
path: root/src/exec.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/exec.cc')
-rw-r--r--src/exec.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/exec.cc b/src/exec.cc
index d82f5effaaea..fdfb467cca71 100644
--- a/src/exec.cc
+++ b/src/exec.cc
@@ -122,7 +122,11 @@ void runProgram(const string & program,
         throw Error("unable to wait for child");
     
     if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
-        delTmpDir.cancel();
+	if (keepFailed) {
+	    msg(lvlTalkative, 
+		format("build failed; keeping build directory `%1%'") % tmpDir);
+	    delTmpDir.cancel();
+	}
         throw Error("unable to build package");
     }
 }