Add some GNU readline compat functions for prompt handling and redisplay

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson 2014-09-17 05:48:56 +02:00
parent 85e606d093
commit bd9c8ddda6
2 changed files with 34 additions and 0 deletions

View File

@ -78,6 +78,13 @@ extern int el_hist_size; /* size of history scrollback buffer, default:
extern void rl_initialize(void); extern void rl_initialize(void);
extern void rl_reset_terminal(const char *terminal_name); extern void rl_reset_terminal(const char *terminal_name);
void rl_save_prompt(void);
void rl_restore_prompt(void);
void rl_set_prompt(const char *prompt);
void rl_clear_message(void);
void rl_forced_update_display(void);
extern char *readline(const char *prompt); extern char *readline(const char *prompt);
extern void add_history(const char *line); extern void add_history(const char *line);

View File

@ -1134,6 +1134,33 @@ void rl_initialize(void)
if (el_outfd < 0) el_outfd = EL_STDOUT; if (el_outfd < 0) el_outfd = EL_STDOUT;
} }
static const char *rl_saved_prompt = NULL;
void rl_save_prompt(void)
{
rl_saved_prompt = rl_prompt;
}
void rl_restore_prompt(void)
{
if (rl_saved_prompt)
rl_prompt = rl_saved_prompt;
}
void rl_set_prompt(const char *prompt)
{
rl_prompt = prompt;
}
void rl_clear_message(void)
{
/* Nothing to do atm. */
}
void rl_forced_update_display()
{
redisplay();
}
char *readline(const char *prompt) char *readline(const char *prompt)
{ {
char *line; char *line;