summaryrefslogtreecommitdiffstats
path: root/src/parsers.cc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2011-10-06 00:51:06 (GMT)
committerEvan Martin <martine@danga.com>2011-10-06 00:51:06 (GMT)
commite54d2b6c8bbb78b238160c7f31ae8515c15183d9 (patch)
tree2566a133dfda2675b55c896dbf22f95a7bbfced5 /src/parsers.cc
parent06ab305be33ff4899016c746ee8a3557291ebe09 (diff)
downloadNinja-e54d2b6c8bbb78b238160c7f31ae8515c15183d9.zip
Ninja-e54d2b6c8bbb78b238160c7f31ae8515c15183d9.tar.gz
Ninja-e54d2b6c8bbb78b238160c7f31ae8515c15183d9.tar.bz2
make CanonicalizePath report an error on empty path
Fixes part of issue 121, but the fix exposed a further issue.
Diffstat (limited to 'src/parsers.cc')
-rw-r--r--src/parsers.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/parsers.cc b/src/parsers.cc
index 567be6b..9ed2938 100644
--- a/src/parsers.cc
+++ b/src/parsers.cc
@@ -462,7 +462,8 @@ bool ManifestParser::ParseDefaults(string* err) {
if (!eval.Parse(target, &eval_err))
return tokenizer_.Error(eval_err, err);
string path = eval.Evaluate(env_);
- CanonicalizePath(&path);
+ if (!CanonicalizePath(&path, &eval_err))
+ return tokenizer_.Error(eval_err, err);
if (!state_->AddDefault(path, &eval_err))
return tokenizer_.Error(eval_err, err);
} while (tokenizer_.ReadIdent(&target));
@@ -566,7 +567,8 @@ bool ManifestParser::ParseEdge(string* err) {
if (!eval.Parse(*i, &eval_err))
return tokenizer_.Error(eval_err, err);
string path = eval.Evaluate(env);
- CanonicalizePath(&path);
+ if (!CanonicalizePath(&path, &eval_err))
+ return tokenizer_.Error(eval_err, err);
*i = path;
}
}