diff options
author | Evan Martin <martine@danga.com> | 2012-03-01 20:07:40 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2012-03-01 20:07:40 (GMT) |
commit | 866b992459820aa3f6378f26df5b8d3135be98b1 (patch) | |
tree | 1de976519a63b7bf9f60326608f56c07c2dd47ef | |
parent | 3bfbb4ed0a8643a68fa7394303eaf2b3a5f2ca38 (diff) | |
download | Ninja-866b992459820aa3f6378f26df5b8d3135be98b1.zip Ninja-866b992459820aa3f6378f26df5b8d3135be98b1.tar.gz Ninja-866b992459820aa3f6378f26df5b8d3135be98b1.tar.bz2 |
add an "urtle" tool
-rw-r--r-- | src/ninja.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/ninja.cc b/src/ninja.cc index 7f07053..0b3ffe5 100644 --- a/src/ninja.cc +++ b/src/ninja.cc @@ -478,6 +478,31 @@ int ToolClean(Globals* globals, int argc, char* argv[]) { } } +void ToolUrtle() { + // RLE encoded. + const char* urtle = +" 13 ,3;2!2;\n8 ,;<11!;\n5 `'<10!(2`'2!\n11 ,6;, `\\. `\\9 .,c13$ec,.\n6 " +",2;11!>; `. ,;!2> .e8$2\".2 \"?7$e.\n <:<8!'` 2.3,.2` ,3!' ;,(?7\";2!2'<" +"; `?6$PF ,;,\n2 `'4!8;<!3'`2 3! ;,`'2`2'3!;4!`2.`!;2 3,2 .<!2'`).\n5 3`5" +"'2`9 `!2 `4!><3;5! J2$b,`!>;2!:2!`,d?b`!>\n26 `'-;,(<9!> $F3 )3.:!.2 d\"" +"2 ) !>\n30 7`2'<3!- \"=-='5 .2 `2-=\",!>\n25 .ze9$er2 .,cd16$bc.'\n22 .e" +"14$,26$.\n21 z45$c .\n20 J50$c\n20 14$P\"`?34$b\n20 14$ dbc `2\"?22$?7$c" +"\n20 ?18$c.6 4\"8?4\" c8$P\n9 .2,.8 \"20$c.3 ._14 J9$\n .2,2c9$bec,.2 `?" +"21$c.3`4%,3%,3 c8$P\"\n22$c2 2\"?21$bc2,.2` .2,c7$P2\",cb\n23$b bc,.2\"2" +"?14$2F2\"5?2\",J5$P\" ,zd3$\n24$ ?$3?%3 `2\"2?12$bcucd3$P3\"2 2=7$\n23$P" +"\" ,3;<5!>2;,. `4\"6?2\"2 ,9;, `\"?2$\n19$P2\",;23!6;17!;2 \"\n"; + int count = 0; + for (const char* p = urtle; *p; p++) { + if ('0' <= *p && *p <= '9') { + count = count*10 + *p - '0'; + } else { + for (int i = 0; i < std::max(count, 1); ++i) + printf("%c", *p); + count = 0; + } + } +} + int RunTool(const string& tool, Globals* globals, int argc, char** argv) { typedef int (*ToolFunc)(Globals*, int, char**); struct Tool { @@ -510,6 +535,9 @@ int RunTool(const string& tool, Globals* globals, int argc, char** argv) { printf("%10s %s\n", tools[i].name, tools[i].desc); } return 0; + } else if (tool == "urtle") { + ToolUrtle(); + return 0; } for (int i = 0; tools[i].name; ++i) { |