]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/commitdiff
cmdproc: Make backspace work even in sterm
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 30 Mar 2016 12:21:17 +0000 (14:21 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Mon, 18 Apr 2016 15:46:21 +0000 (17:46 +0200)
sterm sends chr(127) instead of backspace.

rpp-test-sw/cmdproc/src/cmdproc_io_line.c

index 3e3eac8eba48416b8c40898335a560d2850d6145..0a1c2a23b73361bc67e32ccc0d9f7fa5ecd37017 100644 (file)
@@ -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;