]> git.saurik.com Git - cycript.git/blobdiff - Console.cpp
Do not add duplicate history entries for up-enter.
[cycript.git] / Console.cpp
index f4f5b10f4581380430758f69e3f8363e9bcd2b92..db86eb82f5000fcc2f7a95d451a80ccd254d32d9 100644 (file)
@@ -400,6 +400,9 @@ class History {
     } }
 
     void operator +=(std::string command) {
+        if (HIST_ENTRY *entry = history_get(where_history()))
+            if (command == entry->line)
+                return;
         add_history(command.c_str());
         ++histlines_;
     }
@@ -674,13 +677,13 @@ static void Console(CYOptions &options) {
 
     CYOutputRun("");
 
-    struct sigaction action;
-    sigemptyset(&action.sa_mask);
-    action.sa_handler = &sigint;
-    action.sa_flags = 0;
-    sigaction(SIGINT, &action, NULL);
-
     for (;;) {
+        struct sigaction action;
+        sigemptyset(&action.sa_mask);
+        action.sa_handler = &sigint;
+        action.sa_flags = 0;
+        sigaction(SIGINT, &action, NULL);
+
         if (setjmp(ctrlc_) != 0) {
             mode_ = Working;
             *out_ << std::endl;