projects
/
proxmark3-svn
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #588 from megabug/indala-preamble-fix
[proxmark3-svn]
/
client
/
ui.c
diff --git
a/client/ui.c
b/client/ui.c
index df2c3ce3c6a6909cb99317f34770853c40992f13..dc122d2f17acc04cd405d093dc4bb540e83c7355 100644
(file)
--- a/
client/ui.c
+++ b/
client/ui.c
@@
-9,12
+9,14
@@
// UI utilities
//-----------------------------------------------------------------------------
// UI utilities
//-----------------------------------------------------------------------------
-#include <stdarg.h>
+#include <stdbool.h>
+#ifndef EXTERNAL_PRINTANDLOG
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
-#include <std
bool
.h>
+#include <std
arg
.h>
#include <readline/readline.h>
#include <pthread.h>
#include <readline/readline.h>
#include <pthread.h>
+#endif
#include "ui.h"
#include "ui.h"
@@
-26,10
+28,12
@@
int GridOffset = 0;
bool GridLocked = false;
bool showDemod = true;
bool GridLocked = false;
bool showDemod = true;
-extern pthread_mutex_t print_lock;
-
static char *logfilename = "proxmark3.log";
static char *logfilename = "proxmark3.log";
+#ifndef EXTERNAL_PRINTANDLOG
+// Declared in proxmark3.c
+extern pthread_mutex_t print_lock;
+
void PrintAndLog(char *fmt, ...)
{
char *saved_line;
void PrintAndLog(char *fmt, ...)
{
char *saved_line;
@@
-49,8
+53,11
@@
void PrintAndLog(char *fmt, ...)
}
}
}
}
+ // If there is an incoming message from the hardware (eg: lf hid read) in
+ // the background (while the prompt is displayed and accepting user input),
+ // stash the prompt and bring it back later.
#ifdef RL_STATE_READCMD
#ifdef RL_STATE_READCMD
- // We are using GNU readline.
+ // We are using GNU readline.
libedit (OSX) doesn't support this flag.
int need_hack = (rl_readline_state & RL_STATE_READCMD) > 0;
if (need_hack) {
int need_hack = (rl_readline_state & RL_STATE_READCMD) > 0;
if (need_hack) {
@@
-60,9
+67,6
@@
void PrintAndLog(char *fmt, ...)
rl_replace_line("", 0);
rl_redisplay();
}
rl_replace_line("", 0);
rl_redisplay();
}
-#else
- // We are using libedit (OSX), which doesn't support this flag.
- int need_hack = 0;
#endif
va_start(argptr, fmt);
#endif
va_start(argptr, fmt);
@@
-72,6
+76,8
@@
void PrintAndLog(char *fmt, ...)
va_end(argptr);
printf("\n");
va_end(argptr);
printf("\n");
+#ifdef RL_STATE_READCMD
+ // We are using GNU readline. libedit (OSX) doesn't support this flag.
if (need_hack) {
rl_restore_prompt();
rl_replace_line(saved_line, 0);
if (need_hack) {
rl_restore_prompt();
rl_replace_line(saved_line, 0);
@@
-79,6
+85,7
@@
void PrintAndLog(char *fmt, ...)
rl_redisplay();
free(saved_line);
}
rl_redisplay();
free(saved_line);
}
+#endif
if (logging && logfile) {
vfprintf(logfile, fmt, argptr2);
if (logging && logfile) {
vfprintf(logfile, fmt, argptr2);
@@
-94,7
+101,7
@@
void PrintAndLog(char *fmt, ...)
//release lock
pthread_mutex_unlock(&print_lock);
}
//release lock
pthread_mutex_unlock(&print_lock);
}
-
+#endif
void SetLogFilename(char *fn)
{
void SetLogFilename(char *fn)
{
Impressum
,
Datenschutz