diff options
author | Evan Martin <martine@danga.com> | 2010-12-19 23:22:22 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2010-12-19 23:22:22 (GMT) |
commit | 6f2a2ce9760cfab7ce570104892688385347d102 (patch) | |
tree | 9bac2f7591b3bacdebeece6db3e6261f36d89271 | |
parent | dbacf94cf6b5f1d3947523792a3834d345302ae1 (diff) | |
download | Ninja-6f2a2ce9760cfab7ce570104892688385347d102.zip Ninja-6f2a2ce9760cfab7ce570104892688385347d102.tar.gz Ninja-6f2a2ce9760cfab7ce570104892688385347d102.tar.bz2 |
allow one-letter variable names
-rw-r--r-- | src/ninja_jumble.cc | 4 | ||||
-rw-r--r-- | src/parsers_test.cc | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/ninja_jumble.cc b/src/ninja_jumble.cc index 4a30eba..ef4eefb 100644 --- a/src/ninja_jumble.cc +++ b/src/ninja_jumble.cc @@ -374,12 +374,12 @@ bool EvalString::Parse(const string& input, string* err) { parsed_.push_back(make_pair(input.substr(start, end - start), SPECIAL)); ++end; } else { - for (end = start + 1; end < input.size(); ++end) { + for (end = start; end < input.size(); ++end) { char c = input[end]; if (!(('a' <= c && c <= 'z') || c == '_')) break; } - if (end == start + 1) { + if (end == start) { *err = "expected variable after $"; return false; } diff --git a/src/parsers_test.cc b/src/parsers_test.cc index b1f58b4..8187a62 100644 --- a/src/parsers_test.cc +++ b/src/parsers_test.cc @@ -51,8 +51,9 @@ TEST_F(ParserTest, Rules) { TEST_F(ParserTest, Variables) { ASSERT_NO_FATAL_FAILURE(AssertParse( +"l = one-letter-test\n" "rule link\n" -" command = ld $extra $with_under -o $out $in\n" +" command = ld $l $extra $with_under -o $out $in\n" "\n" "extra = -pthread\n" "with_under = -under\n" @@ -60,7 +61,8 @@ TEST_F(ParserTest, Variables) { ASSERT_EQ(1, state.edges_.size()); Edge* edge = state.edges_[0]; - EXPECT_EQ("ld -pthread -under -o a b c", edge->EvaluateCommand()); + EXPECT_EQ("ld one-letter-test -pthread -under -o a b c", + edge->EvaluateCommand()); } TEST_F(ParserTest, VariableScope) { |