From 83c5a3b5838ba648b7783d7f84f12168304030bd Mon Sep 17 00:00:00 2001 From: Ian Dowse Date: Sun, 1 Sep 2002 12:49:27 +0000 Subject: [PATCH] If the CC environment variable contains multiple words then split it up into separate exec arguments. Reviewed by: markm --- usr.bin/xlint/xlint/xlint.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/usr.bin/xlint/xlint/xlint.c b/usr.bin/xlint/xlint/xlint.c index a694ff425b87..f7d0d9825fee 100644 --- a/usr.bin/xlint/xlint/xlint.c +++ b/usr.bin/xlint/xlint/xlint.c @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -583,7 +584,7 @@ static void fname(const char *name) { const char *bn, *suff; - char **args, *ofn, *pathname, *CC; + char **args, *ofn, *p, *pathname; size_t len; int is_stdin; int fd; @@ -643,10 +644,13 @@ fname(const char *name) if (getenv("CC") == NULL) { pathname = xmalloc(strlen(PATH_USRBIN) + sizeof ("/cc")); (void)sprintf(pathname, "%s/cc", PATH_USRBIN); - } else + appcstrg(&args, pathname); + } else { pathname = strdup(getenv("CC")); + for (p = strtok(pathname, " \t"); p; p = strtok(NULL, " \t")) + appcstrg(&args, p); + } - appcstrg(&args, pathname); applst(&args, cflags); applst(&args, lcflags); appcstrg(&args, name);