aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-06-25 11:11:44 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-06-25 11:12:33 +0900
commit4627ab22520d904004bb50048267c6c5f5bbd2db (patch)
treedd9028e6e84562f625e0f8c06efd23157675f76c
parentd570f214b76beac77ecfd287822cc4f7a690f7c4 (diff)
[C++] A follow-up for the previous change
-rw-r--r--flags.cc18
1 files changed, 5 insertions, 13 deletions
diff --git a/flags.cc b/flags.cc
index 2adcff4..1ed9afd 100644
--- a/flags.cc
+++ b/flags.cc
@@ -16,6 +16,7 @@
#include "flags.h"
+#include <stdlib.h>
#include <unistd.h>
#include "log.h"
@@ -47,24 +48,15 @@ static bool ParseCommandLineOptionWithArg(StringPiece option,
return false;
}
-extern "C" char** environ;
-
void Flags::Parse(int argc, char** argv) {
subkati_args.push_back(argv[0]);
num_jobs = num_cpus = sysconf(_SC_NPROCESSORS_ONLN);
const char* num_jobs_str;
- for (char** p = environ; *p; p++) {
- const char* prefix = "MAKEFLAGS=";
- if (HasPrefix(*p, prefix)) {
- for (StringPiece tok : WordScanner(*p + strlen(prefix))) {
- if (!HasPrefix(tok, "-")) {
- size_t found = tok.find("=");
- if (found != string::npos) {
- cl_vars.push_back(tok);
- }
- }
- }
+ if (const char* makeflags = getenv("MAKEFLAGS")) {
+ for (StringPiece tok : WordScanner(makeflags)) {
+ if (!HasPrefix(tok, "-") && tok.find('=') != string::npos)
+ cl_vars.push_back(tok);
}
}