From 293ce0ea23cc5b57f4b714d381531683d01a70fc Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Wed, 30 Mar 2016 14:21:17 +0200 Subject: [PATCH] cmdproc: Make backspace work even in sterm sterm sends chr(127) instead of backspace. --- rpp-test-sw/cmdproc/src/cmdproc_io_line.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rpp-test-sw/cmdproc/src/cmdproc_io_line.c b/rpp-test-sw/cmdproc/src/cmdproc_io_line.c index 3e3eac8..0a1c2a2 100644 --- a/rpp-test-sw/cmdproc/src/cmdproc_io_line.c +++ b/rpp-test-sw/cmdproc/src/cmdproc_io_line.c @@ -41,7 +41,7 @@ int cmd_ed_line_buf(ed_line_buf_t *elb, int ch) if(!lastch){ elb->inbuf=0; /* Start new line */ } - if(ch == '\b') { /* backspace */ + if(ch == '\b' || ch == 127) { /* backspace, del (sometimes backspace = 127) */ if (elb->inbuf > 0) elb->inbuf--; return 0; @@ -200,8 +200,10 @@ int cmd_io_line_in(cmd_io_t *cmd_io) else if(el->flg&FL_ELB_ECHO) { while(cmd_io_putc(io_stack,ch)<0); - if (ch == '\b') - cmd_io_puts(io_stack, "\033[K"); /* Erase End of Line */ + if (ch == 127) + while(cmd_io_putc(io_stack,'\b')<0); + if (ch == '\b' || ch == 127) + cmd_io_puts(io_stack, "\033[K"); /* Erase End of Line */ } } return 0; -- 2.39.2