From fa88c4ee1e95335c8050b20a7d5f70c8eaf7a679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Sun, 5 May 2019 23:46:27 +0300 Subject: [PATCH] wrappers: Escape the first argument to spawn This fixes running in paths that contain a space. --- wrappers/clang-target-wrapper.c | 2 +- wrappers/windres-wrapper.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/wrappers/clang-target-wrapper.c b/wrappers/clang-target-wrapper.c index 06d461e..87b5507 100644 --- a/wrappers/clang-target-wrapper.c +++ b/wrappers/clang-target-wrapper.c @@ -165,7 +165,7 @@ int _tmain(int argc, TCHAR* argv[]) { int arg = 0; if (getenv("CCACHE")) exec_argv[arg++] = _T("ccache"); - exec_argv[arg++] = concat(dir, _T(CLANG)); + exec_argv[arg++] = escape(concat(dir, _T(CLANG))); // If changing this wrapper, change clang-target-wrapper.sh accordingly. if (!_tcscmp(exe, _T("clang++")) || !_tcscmp(exe, _T("g++")) || !_tcscmp(exe, _T("c++"))) diff --git a/wrappers/windres-wrapper.c b/wrappers/windres-wrapper.c index 5869085..8e0d07b 100644 --- a/wrappers/windres-wrapper.c +++ b/wrappers/windres-wrapper.c @@ -287,7 +287,7 @@ int _tmain(int argc, TCHAR* argv[]) { int arg = 0; if (!_tcscmp(input_format, _T("rc"))) { - exec_argv[arg++] = concat(dir, CC); + exec_argv[arg++] = escape(concat(dir, CC)); exec_argv[arg++] = _T("-E"); for (int i = 0; i < nb_cpp_options; i++) exec_argv[arg++] = escape(cpp_options[i]); @@ -312,7 +312,7 @@ int _tmain(int argc, TCHAR* argv[]) { } arg = 0; - exec_argv[arg++] = concat(dir, _T("llvm-rc")); + exec_argv[arg++] = escape(concat(dir, _T("llvm-rc"))); for (int i = 0; i < nb_rc_options; i++) exec_argv[arg++] = escape(rc_options[i]); exec_argv[arg++] = _T("-I"); @@ -346,7 +346,7 @@ int _tmain(int argc, TCHAR* argv[]) { // All done } else if (!_tcscmp(output_format, _T("coff"))) { arg = 0; - exec_argv[arg++] = concat(dir, _T("llvm-cvtres")); + exec_argv[arg++] = escape(concat(dir, _T("llvm-cvtres"))); exec_argv[arg++] = escape(res); exec_argv[arg++] = concat(_T("-machine:"), machine); exec_argv[arg++] = escape(concat(_T("-out:"), output)); @@ -369,7 +369,7 @@ int _tmain(int argc, TCHAR* argv[]) { error(basename, _T("invalid output format: `"TS"'"), output_format); } } else if (!_tcscmp(input_format, _T("res"))) { - exec_argv[arg++] = concat(dir, _T("llvm-cvtres")); + exec_argv[arg++] = escape(concat(dir, _T("llvm-cvtres"))); exec_argv[arg++] = escape(input); exec_argv[arg++] = concat(_T("-machine:"), machine); exec_argv[arg++] = escape(concat(_T("-out:"), output));