mirror of
https://github.com/sheumann/hush.git
synced 2024-05-28 21:41:30 +00:00
Reset to normal cursor when the command prompt is printed.
This works around problems when programs change the cursor and don't restore it before exiting.
This commit is contained in:
parent
b1044cfa8f
commit
01890e4a42
|
@ -128,6 +128,7 @@ char *up_cmd = "\037"; // ^_
|
|||
char *home_cmd = "\031"; // ^Y
|
||||
char *right_cmd = "\025"; // ^U
|
||||
char *clear_to_end_of_screen_cmd = "\013"; // ^K
|
||||
char *normal_cursor_cmd = "\002\005"; // ^B^E
|
||||
#else
|
||||
# define TERMCAP_BUFSIZ 4096
|
||||
# define DEFAULT_TERM "vt100"
|
||||
|
@ -135,6 +136,7 @@ char *up_cmd = ESC"[A";
|
|||
char *home_cmd = ESC"[H";
|
||||
char *right_cmd = ESC"[C";
|
||||
char *clear_to_end_of_screen_cmd = ESC"[J";
|
||||
char *normal_cursor_cmd = "";
|
||||
#endif
|
||||
|
||||
char *old_term = NULL;
|
||||
|
@ -284,20 +286,19 @@ static void init_termcap(void)
|
|||
}
|
||||
|
||||
result = tgetstr("up", &string_buf);
|
||||
if (result != NULL)
|
||||
up_cmd = result;
|
||||
up_cmd = result ? result : "";
|
||||
|
||||
result = tgetstr("ho", &string_buf);
|
||||
if (result != NULL)
|
||||
home_cmd = result;
|
||||
home_cmd = result ? result : "";
|
||||
|
||||
result = tgetstr("nd", &string_buf);
|
||||
if (result != NULL)
|
||||
right_cmd = result;
|
||||
right_cmd = result ? result : "";
|
||||
|
||||
result = tgetstr("cd", &string_buf);
|
||||
if (result != NULL)
|
||||
clear_to_end_of_screen_cmd = result;
|
||||
clear_to_end_of_screen_cmd = result ? result : "";
|
||||
|
||||
result = tgetstr("ve", &string_buf);
|
||||
normal_cursor_cmd = result ? result : "";
|
||||
|
||||
n_escape_seqs = 0;
|
||||
add_escape_seq_from_termcap("ku", KEYCODE_UP, &string_buf);
|
||||
|
@ -2563,6 +2564,7 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman
|
|||
|
||||
/* Print out the command prompt, optionally ask where cursor is */
|
||||
parse_and_put_prompt(prompt);
|
||||
tputs(normal_cursor_cmd, 1, bb_putchar);
|
||||
ask_terminal();
|
||||
|
||||
/* Install window resize handler (NB: after *all* init is complete) */
|
||||
|
|
Loading…
Reference in New Issue
Block a user