server/telnet: support 'CTRL+C'
like in terminal 'CTRL+C': - keeps the line content so the user can refer to it (like copy/paste) - marks the line with '^C', as hint that the command was not executed - permit the user to write a new command Change-Id: Ib784c827d64fdc439a35db461d8387a62d3bfbbf Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6439 Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins
This commit is contained in:
parent
efe944dfc9
commit
70cd395f3f
|
@ -718,6 +718,13 @@ static int telnet_input(struct connection *connection)
|
||||||
t_con->line_cursor--;
|
t_con->line_cursor--;
|
||||||
}
|
}
|
||||||
t_con->state = TELNET_STATE_DATA;
|
t_con->state = TELNET_STATE_DATA;
|
||||||
|
} else if (*buf_p == CTRL('C')) { /* interrupt */
|
||||||
|
/* print '^C' at line end, and display a new command prompt */
|
||||||
|
telnet_move_cursor(connection, t_con->line_size);
|
||||||
|
telnet_write(connection, "^C\n\r", 4);
|
||||||
|
t_con->line_cursor = 0;
|
||||||
|
t_con->line_size = 0;
|
||||||
|
telnet_prompt(connection);
|
||||||
} else if (*buf_p == CTRL('F')) { /* cursor right */
|
} else if (*buf_p == CTRL('F')) { /* cursor right */
|
||||||
if (t_con->line_cursor < t_con->line_size)
|
if (t_con->line_cursor < t_con->line_size)
|
||||||
telnet_write(connection, t_con->line + t_con->line_cursor++, 1);
|
telnet_write(connection, t_con->line + t_con->line_cursor++, 1);
|
||||||
|
|
Loading…
Reference in New Issue