From dd7e591c3fdce38d6116c4e2765dc10e37363637 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Mon, 17 Mar 2014 16:14:59 -0400
Subject: [PATCH] concatenate to a temporary file for more robustness.

---
 concatenate-source.lisp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/concatenate-source.lisp b/concatenate-source.lisp
index 3c7258da..a2eb5d6d 100644
--- a/concatenate-source.lisp
+++ b/concatenate-source.lisp
@@ -77,9 +77,11 @@
     (lisp-compilation-output-files o s))
 
   (defmethod perform ((o basic-concatenate-source-op) (s system))
-    (let ((inputs (input-files o s))
-          (output (output-file o s)))
-      (concatenate-files inputs output)))
+    (let* ((ins (input-files o s))
+           (out (output-file o s))
+           (tmp (tmpize-pathname out)))
+      (concatenate-files ins tmp)
+      (rename-file-overwriting-target tmp out)))
   (defmethod perform ((o basic-load-concatenated-source-op) (s system))
     (perform-lisp-load-source o s))
   (defmethod perform ((o basic-compile-concatenated-source-op) (s system))
-- 
GitLab