summaryrefslogtreecommitdiffstats
path: root/src/eval_env.cc
diff options
context:
space:
mode:
authorNicolas Despres <nicolas.despres@gmail.com>2015-09-21 10:01:33 (GMT)
committerNicolas Despres <nicolas.despres@gmail.com>2019-05-09 14:36:47 (GMT)
commitbb9512f53daa5913220282f0ad86a20d174e367c (patch)
treef4fdf019cad3ee6dc5fce2338f144431797607a2 /src/eval_env.cc
parent2e64645749ff91eff2f999f03f55da360ae5913d (diff)
downloadNinja-bb9512f53daa5913220282f0ad86a20d174e367c.zip
Ninja-bb9512f53daa5913220282f0ad86a20d174e367c.tar.gz
Ninja-bb9512f53daa5913220282f0ad86a20d174e367c.tar.bz2
Resurrect the 'rules' tool.
This tool is useful for writing shell completion script for tools expecting a rule name as argument. The tool was dropped by 34b46f28c. Fix #1024.
Diffstat (limited to 'src/eval_env.cc')
-rw-r--r--src/eval_env.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/eval_env.cc b/src/eval_env.cc
index aa3d2b6..e9b6c43 100644
--- a/src/eval_env.cc
+++ b/src/eval_env.cc
@@ -131,3 +131,17 @@ string EvalString::Serialize() const {
}
return result;
}
+
+string EvalString::Unparse() const {
+ string result;
+ for (TokenList::const_iterator i = parsed_.begin();
+ i != parsed_.end(); ++i) {
+ bool special = (i->second == SPECIAL);
+ if (special)
+ result.append("${");
+ result.append(i->first);
+ if (special)
+ result.append("}");
+ }
+ return result;
+}