diff options
author | iedowse <iedowse@FreeBSD.org> | 2002-09-01 12:49:27 +0000 |
---|---|---|
committer | iedowse <iedowse@FreeBSD.org> | 2002-09-01 12:49:27 +0000 |
commit | 99766d4bf14be0bdb5fef30192d98e2240e166b5 (patch) | |
tree | 03e08cd265b9e2dbc8a296da6d8f73fbddf117dc | |
parent | cbcc6c0caa115cca15b6470e9a0bcc5ca3828f68 (diff) | |
download | FreeBSD-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.c | 10 |
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); |