summaryrefslogtreecommitdiffstats
path: root/src/manifest_parser.cc
diff options
context:
space:
mode:
authorNico Weber <thakis@chromium.org>2014-11-24 17:37:47 (GMT)
committerNico Weber <thakis@chromium.org>2014-11-24 17:37:47 (GMT)
commit3309498174411e02e7680ea8b470bb7d1d70bdb8 (patch)
tree2c84adc7263350e6929dca36d778ea7e29fe5cc5 /src/manifest_parser.cc
parent85e13c163d0129216fb382df6a53d11393c4c0c2 (diff)
parentb532cab080bbde2068ab49aba814c7176111681f (diff)
downloadNinja-1.5.3.zip
Ninja-1.5.3.tar.gz
Ninja-1.5.3.tar.bz2
v1.5.3v1.5.3
Diffstat (limited to 'src/manifest_parser.cc')
-rw-r--r--src/manifest_parser.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/manifest_parser.cc b/src/manifest_parser.cc
index 6fa4f7c..388b5bc 100644
--- a/src/manifest_parser.cc
+++ b/src/manifest_parser.cc
@@ -191,7 +191,7 @@ bool ManifestParser::ParseRule(string* err) {
bool ManifestParser::ParseLet(string* key, EvalString* value, string* err) {
if (!lexer_.ReadIdent(key))
- return false;
+ return lexer_.Error("expected variable name", err);
if (!ExpectToken(Lexer::EQUALS, err))
return false;
if (!lexer_.ReadVarValue(value, err))
@@ -209,7 +209,8 @@ bool ManifestParser::ParseDefault(string* err) {
do {
string path = eval.Evaluate(env_);
string path_err;
- if (!CanonicalizePath(&path, &path_err))
+ unsigned int slash_bits; // Unused because this only does lookup.
+ if (!CanonicalizePath(&path, &slash_bits, &path_err))
return lexer_.Error(path_err, err);
if (!state_->AddDefault(path, &path_err))
return lexer_.Error(path_err, err);
@@ -323,16 +324,18 @@ bool ManifestParser::ParseEdge(string* err) {
for (vector<EvalString>::iterator i = ins.begin(); i != ins.end(); ++i) {
string path = i->Evaluate(env);
string path_err;
- if (!CanonicalizePath(&path, &path_err))
+ unsigned int slash_bits;
+ if (!CanonicalizePath(&path, &slash_bits, &path_err))
return lexer_.Error(path_err, err);
- state_->AddIn(edge, path);
+ state_->AddIn(edge, path, slash_bits);
}
for (vector<EvalString>::iterator i = outs.begin(); i != outs.end(); ++i) {
string path = i->Evaluate(env);
string path_err;
- if (!CanonicalizePath(&path, &path_err))
+ unsigned int slash_bits;
+ if (!CanonicalizePath(&path, &slash_bits, &path_err))
return lexer_.Error(path_err, err);
- state_->AddOut(edge, path);
+ state_->AddOut(edge, path, slash_bits);
}
edge->implicit_deps_ = implicit;
edge->order_only_deps_ = order_only;