]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/ui.c
Comms refactor (prerequisite of libproxmark work) (#371)
[proxmark3-svn] / client / ui.c
index 5902cb89923f980a0318b4819aac17ec4831b40c..48869fd1049f2914f01c636b5d28280f1cf35f8b 100644 (file)
 #include <stdarg.h>
 #include <stdlib.h>
 #include <stdio.h>
+#include <stdbool.h>
 #include <readline/readline.h>
 #include <pthread.h>
 
 #include "ui.h"
 
-double CursorScaleFactor;
-int PlotGridX, PlotGridY, PlotGridXdefault= 64, PlotGridYdefault= 64, CursorCPos= 0, CursorDPos= 0;
+double CursorScaleFactor = 1;
+int PlotGridX=0, PlotGridY=0, PlotGridXdefault= 64, PlotGridYdefault= 64, CursorCPos= 0, CursorDPos= 0;
 int offline;
-int flushAfterWrite = 0;  //buzzy
+bool flushAfterWrite = false;  //buzzy
+int GridOffset = 0;
+bool GridLocked = false;
+bool showDemod = true;
+
 extern pthread_mutex_t print_lock;
 
 static char *logfilename = "proxmark3.log";
@@ -43,7 +48,9 @@ void PrintAndLog(char *fmt, ...)
                        logging=0;
                }
        }
-       
+
+#ifdef RL_STATE_READCMD
+       // We are using GNU readline.
        int need_hack = (rl_readline_state & RL_STATE_READCMD) > 0;
 
        if (need_hack) {
@@ -53,6 +60,9 @@ void PrintAndLog(char *fmt, ...)
                rl_replace_line("", 0);
                rl_redisplay();
        }
+#else
+       // We are using libedit (OSX), which doesn't support this flag.
+#endif
        
        va_start(argptr, fmt);
        va_copy(argptr2, argptr);
@@ -61,6 +71,9 @@ void PrintAndLog(char *fmt, ...)
        va_end(argptr);
        printf("\n");
 
+       // This needs to be wrapped in ifdefs, as this if optimisation is disabled,
+       // this block won't be removed, and it'll fail at the linker.
+#ifdef RL_STATE_READCMD
        if (need_hack) {
                rl_restore_prompt();
                rl_replace_line(saved_line, 0);
@@ -68,6 +81,7 @@ void PrintAndLog(char *fmt, ...)
                rl_redisplay();
                free(saved_line);
        }
+#endif
        
        if (logging && logfile) {
                vfprintf(logfile, fmt, argptr2);
@@ -89,3 +103,8 @@ void SetLogFilename(char *fn)
 {
   logfilename = fn;
 }
+
+void SetFlushAfterWrite(bool flush_after_write) {
+       flushAfterWrite = flush_after_write;
+}
+
Impressum, Datenschutz