This is an automated email from Gerrit.

Tarek BOCHKATI (tarek.bouchk...@gmail.com) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/6439

-- gerrit

commit 0f85b9bbeadc8ab8b9fdbb45a60f2f89885d8d2f
Author: Tarek BOCHKATI <tarek.bouchk...@gmail.com>
Date:   Tue Aug 17 13:29:56 2021 +0100

    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.bouchk...@gmail.com>

diff --git a/src/server/telnet_server.c b/src/server/telnet_server.c
index 253591e..f7b3f64 100644
--- a/src/server/telnet_server.c
+++ b/src/server/telnet_server.c
@@ -718,6 +718,13 @@ static int telnet_input(struct connection *connection)
                                                                
t_con->line_cursor--;
                                                        }
                                                        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 */
                                                        if (t_con->line_cursor 
< t_con->line_size)
                                                                
telnet_write(connection, t_con->line + t_con->line_cursor++, 1);

-- 

Reply via email to