* OSX: Multiple libedit/readline fixes.
printf("executing commands from file: %s\n", script_cmds_file);
}
}
printf("executing commands from file: %s\n", script_cmds_file);
}
}
read_history(".history");
while(1) {
read_history(".history");
while(1) {
+ // 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.
- // 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) {
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);
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);
rl_redisplay();
free(saved_line);
}
rl_redisplay();
free(saved_line);
}
if (logging && logfile) {
vfprintf(logfile, fmt, argptr2);
if (logging && logfile) {
vfprintf(logfile, fmt, argptr2);