aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--code/tools/lcc/etc/lcc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/code/tools/lcc/etc/lcc.c b/code/tools/lcc/etc/lcc.c
index 1738c36..cac01b9 100644
--- a/code/tools/lcc/etc/lcc.c
+++ b/code/tools/lcc/etc/lcc.c
@@ -256,6 +256,7 @@ static int callsys(char **av) {
int i, status = 0;
static char **argv;
static int argc;
+ char *executable;
for (i = 0; av[i] != NULL; i++)
;
@@ -281,6 +282,8 @@ static int callsys(char **av) {
i++;
}
argv[j] = NULL;
+ executable = strsave( argv[0] );
+ argv[0] = stringf( "\"%s\"", argv[0] );
if (verbose > 0) {
int k;
fprintf(stderr, "%s", argv[0]);
@@ -290,9 +293,9 @@ static int callsys(char **av) {
}
if (verbose < 2)
#ifndef WIN32
- status = _spawnvp(_P_WAIT, argv[0], argv);
+ status = _spawnvp(_P_WAIT, executable, argv);
#else
- status = _spawnvp(_P_WAIT, argv[0], (const char* const*)argv);
+ status = _spawnvp(_P_WAIT, executable, (const char* const*)argv);
#endif
if (status == -1) {
fprintf(stderr, "%s: ", progname);