From 4d14b3bcb482aaaa26bcaedbbaadb055f8bf8c41 Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Mon, 31 Jul 2017 12:15:20 +0100 Subject: [PATCH] Update `remove_temp_files` --- src/main.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 4a532dcde..24878974d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -413,13 +413,25 @@ void show_timings(Checker *c, Timings *t) { void remove_temp_files(String output_base) { if (build_context.keep_temp_files) return; - gb_file_delete(gb_bprintf("%.*s.ll", LIT(output_base))); - gb_file_delete(gb_bprintf("%.*s.bc", LIT(output_base))); + Array data = {}; + array_init_count(&data, heap_allocator(), output_base.len + 10); + defer (array_free(&data)); + + isize n = output_base.len; + gb_memcopy(data.data, output_base.text, n); +#define EXT_DELETE(s) do { \ + gb_memcopy(data.data+n, s, gb_size_of(s)); \ + gb_file_delete(cast(char *)data.data); \ + } while (0) + EXT_DELETE(".ll"); + EXT_DELETE(".bc"); #if defined(GB_SYSTEM_WINDOWS) - gb_file_delete(gb_bprintf("%.*s.obj", LIT(output_base))); + EXT_DELETE(".obj"); #else - gb_file_delete(gb_bprintf("%.*s.o", LIT(output_base))); + EXT_DELETE(".o"); #endif + +#undef EXT_DELETE } int main(int arg_count, char **arg_ptr) {