From d5b4e7d88159b579fa2261ca5b92eef552b2333e Mon Sep 17 00:00:00 2001 From: yabu76 Date: Mon, 16 Feb 2026 23:34:09 +0900 Subject: [PATCH] Keep the line input mode prompt on the local screen after input It is for visibility. Note: This line input mode prompt is not recorded by tio's logging function. --- src/readline.c | 11 +++++++++++ src/readline.h | 1 + src/tty.c | 1 + 3 files changed, 13 insertions(+) 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);