mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-19 04:49:38 -07:00
OSX: Multiple libedit/readline fixes (#585)
* OSX: Multiple libedit/readline fixes.
This commit is contained in:
parent
51d51c6782
commit
a5a830168f
2 changed files with 8 additions and 5 deletions
|
@ -132,7 +132,7 @@ main_loop(char *script_cmds_file, char *script_cmd, bool usb_present) {
|
||||||
printf("executing commands from file: %s\n", script_cmds_file);
|
printf("executing commands from file: %s\n", script_cmds_file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
read_history(".history");
|
read_history(".history");
|
||||||
|
|
||||||
while(1) {
|
while(1) {
|
||||||
|
|
11
client/ui.c
11
client/ui.c
|
@ -53,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;
|
int need_hack = (rl_readline_state & RL_STATE_READCMD) > 0;
|
||||||
|
|
||||||
if (need_hack) {
|
if (need_hack) {
|
||||||
|
@ -64,9 +67,6 @@ void PrintAndLog(char *fmt, ...)
|
||||||
rl_replace_line("", 0);
|
rl_replace_line("", 0);
|
||||||
rl_redisplay();
|
rl_redisplay();
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
// We are using libedit (OSX), which doesn't support this flag.
|
|
||||||
int need_hack = 0;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
|
@ -76,6 +76,8 @@ void PrintAndLog(char *fmt, ...)
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
|
#ifdef RL_STATE_READCMD
|
||||||
|
// We are using GNU readline. libedit (OSX) doesn't support this flag.
|
||||||
if (need_hack) {
|
if (need_hack) {
|
||||||
rl_restore_prompt();
|
rl_restore_prompt();
|
||||||
rl_replace_line(saved_line, 0);
|
rl_replace_line(saved_line, 0);
|
||||||
|
@ -83,6 +85,7 @@ void PrintAndLog(char *fmt, ...)
|
||||||
rl_redisplay();
|
rl_redisplay();
|
||||||
free(saved_line);
|
free(saved_line);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (logging && logfile) {
|
if (logging && logfile) {
|
||||||
vfprintf(logfile, fmt, argptr2);
|
vfprintf(logfile, fmt, argptr2);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue