diff --git a/src/readline.c b/src/readline.c index 8742e4c..82696a3 100644 --- a/src/readline.c +++ b/src/readline.c @@ -39,6 +39,17 @@ typedef struct readline_s int escape; } readline_t; +void print_prompt(readline_t *rl) +{ + clear_line(); + printf("%s", rl->prompt); + printf("\r"); // Move the cursor back to the beginning + for (int i = 0; i < rl->prompt_length; ++i) + { + printf("\x1b[C"); // Move the cursor right + } +} + void print_line(readline_t *rl) { clear_line(); diff --git a/src/readline.h b/src/readline.h index 0c043b7..66ea31e 100644 --- a/src/readline.h +++ b/src/readline.h @@ -32,3 +32,4 @@ void readline_set_prompt(readline_t *rl, const char *prompt); void readline_prompt_for_input(readline_t *rl); void readline_input(readline_t *rl, char input_char); char *readline_get(readline_t *rl); +void print_prompt(readline_t *rl); diff --git a/src/tty.c b/src/tty.c index 374a402..3ea425c 100644 --- a/src/tty.c +++ b/src/tty.c @@ -3274,6 +3274,7 @@ int tty_connect(void) { // Carriage return readline_input(readline_ctx, input_char); + print_prompt(readline_ctx); // Write current line to tty device char *rl_line = readline_get(readline_ctx);