]> git.saurik.com Git - cycript.git/blobdiff - Console.cpp
Theoretically fix bug with in operators in messages.
[cycript.git] / Console.cpp
index 596f804b19b4472b6374297cf2a85a6b38de6411..642cc20fcb9f79ad30c81ed46e7ce189f4cf16d2 100644 (file)
@@ -64,6 +64,7 @@
 #include <dlfcn.h>
 
 #include "Replace.hpp"
+#include "Display.hpp"
 
 static volatile enum {
     Working,
@@ -404,7 +405,7 @@ static void Console(CYOptions &options) {
     bool bypass(false);
     bool debug(false);
     bool expand(false);
-    bool syntax(false);
+    bool syntax(true);
 
     out_ = &std::cout;
 
@@ -435,9 +436,23 @@ static void Console(CYOptions &options) {
         }
 
       read:
+
+#if RL_READLINE_VERSION >= 0x0600
+        if (syntax) {
+            rl_prep_term_function = CYDisplayStart;
+            rl_redisplay_function = CYDisplayUpdate;
+            rl_deprep_term_function = CYDisplayFinish;
+        } else {
+            rl_prep_term_function = rl_prep_terminal;
+            rl_redisplay_function = rl_redisplay;
+            rl_deprep_term_function = rl_deprep_terminal;
+        }
+#endif
+
         mode_ = Parsing;
         char *line(readline(prompt));
         mode_ = Working;
+
         if (line == NULL)
             break;
         if (line[0] == '\0')