]> git.saurik.com Git - cycript.git/blobdiff - Console.cpp
Checkpointing pretty-printing implementation so I can quickly refactor CYNoLeader.
[cycript.git] / Console.cpp
index c377db2abb3242ac64b4c879de99229e5568c080..98e3cc6e9d4a4c2deac941e518f9fc791aca5ef8 100644 (file)
@@ -95,6 +95,7 @@ static void sigint(int) {
 static bool bison_;
 #endif
 static bool strict_;
+static bool pretty_;
 
 void Setup(CYDriver &driver, cy::parser &parser) {
 #if YYDEBUG
@@ -105,6 +106,10 @@ void Setup(CYDriver &driver, cy::parser &parser) {
         driver.strict_ = true;
 }
 
+void Setup(CYOutput &out) {
+    out.pretty_ = pretty_;
+}
+
 void Run(int socket, const char *data, size_t size, FILE *fout = NULL, bool expand = false) {
     CYPool pool;
 
@@ -288,6 +293,7 @@ static void Console(int socket) {
             else {
                 std::ostringstream str;
                 CYOutput out(str);
+                Setup(out);
                 driver.program_->Multiple(out);
                 code = str.str();
             }
@@ -327,7 +333,7 @@ int main(int argc, char *argv[]) {
     pid_t pid(_not(pid_t));
     bool compile(false);
 
-    for (;;) switch (getopt(argc, argv, "cg:p:s")) {
+    for (;;) switch (getopt(argc, argv, "cg:n:p:s")) {
         case -1:
             goto getopt;
         case '?':
@@ -350,6 +356,16 @@ int main(int argc, char *argv[]) {
             }
         break;
 
+        case 'n':
+            if (false);
+            else if (strcmp(optarg, "minify") == 0)
+                pretty_ = true;
+            else {
+                fprintf(stderr, "invalid name for -n\n");
+                return 1;
+            }
+        break;
+
         case 'p': {
             size_t size(strlen(optarg));
             char *end;
@@ -448,6 +464,7 @@ int main(int argc, char *argv[]) {
             else {
                 std::ostringstream str;
                 CYOutput out(str);
+                Setup(out);
                 driver.program_->Multiple(out);
                 std::string code(str.str());
                 if (compile)