summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriedowse <iedowse@FreeBSD.org>2002-09-01 12:49:27 +0000
committeriedowse <iedowse@FreeBSD.org>2002-09-01 12:49:27 +0000
commit99766d4bf14be0bdb5fef30192d98e2240e166b5 (patch)
tree03e08cd265b9e2dbc8a296da6d8f73fbddf117dc
parentcbcc6c0caa115cca15b6470e9a0bcc5ca3828f68 (diff)
downloadFreeBSD-src-99766d4bf14be0bdb5fef30192d98e2240e166b5.zip
FreeBSD-src-99766d4bf14be0bdb5fef30192d98e2240e166b5.tar.gz
If the CC environment variable contains multiple words then split
it up into separate exec arguments. Reviewed by: markm
-rw-r--r--usr.bin/xlint/xlint/xlint.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.bin/xlint/xlint/xlint.c b/usr.bin/xlint/xlint/xlint.c
index a694ff4..f7d0d98 100644
--- a/usr.bin/xlint/xlint/xlint.c
+++ b/usr.bin/xlint/xlint/xlint.c
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
#include <sys/wait.h>
#include <sys/stat.h>
#include <sys/utsname.h>
+#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <paths.h>
@@ -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);
OpenPOWER on IntegriCloud