#4097 closed defect (fixed)

shell: CRTL-U sets the cursor to the wrong position (cloned)

Reported by: Frank Kuehndel Owned by: Sebastian Huber
Priority: normal Milestone: 6.1
Component: shell Version:
Severity: normal Keywords:
Cc: Blocked By:
Blocking:

Description

Cloned from #4096:


This patch fixes a tiny bug in the command line editing of the RTEMS shell.
Typing CTRL-U in the shell should remove all characters left of the cursor.
After pressing CTRL-U, the current implementation does wrongly place the cursor
at the end of the line instead at its beginning.

To reproduce the bug, start the shell and type 'abc123' (no <RETURN>):

~/src/rtems $ qemu-system-arm -net none -nographic -M realview-pbx-a9 -m 256M -kernel build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl10.exe
*** BEGIN OF TEST libdl (RTL) 10 ***                                            
*** TEST VERSION: 6.0.0.d9bdf166644f612dd628fe4951c12c6f8e94ba5f                   
*** TEST STATE: USER_INPUT                                                         
*** TEST BUILD: RTEMS_DEBUG RTEMS_NETWORKING RTEMS_POSIX_API RTEMS_SMP             
*** TEST TOOLS: 10.2.1 20200904 \                                                  
(RTEMS 6, RSB 31f936a7b74d60bda609a9960c6e1a705ba54974, Newlib a0d7982)            
RTL (libdl) commands: dl, rtl                                                      
                                                                                   
                                                                                   
RTEMS Shell on /dev/foobar. Use 'help' to list commands.                           
SHLL [/] # abc123                                                                  


Then move the cursor onto the '1' by hitting three times the <ARROW-LEFT> key.
Next type <CTRL>-U:

SHLL [/] # 123                                                                     


Note that the cursor is at the end of the line (after '3') instead of correctly
at the beginning (on the '1'), now.

Continuing typing 'echo ' incorrectly results in the output:

SHLL [/] # 123echo 123                                                             


The patch changes this behavior so that the cursor in the second last step will
be on the '1' and typing 'echo ' will then correctly reflected as:

SHLL [/] # echo 123                                                                

Change History (1)

comment:1 Changed on Sep 28, 2020 at 12:17:27 PM by Frank Kühndel <frank.kuehndel@…>

Resolution: fixed
Status: assignedclosed

In ffc928b/rtems:

Fixing bug in line editing of the shell with CTRL-U.

This patch fixes a tiny bug in the command line editing of the RTEMS shell.
Typing CTRL-U in the shell should remove all characters left of the cursor.
After pressing CTRL-U, the current implementation does wrongly place the cursor
at the end of the line instead at its beginning.

To reproduce the bug, start the shell and type 'abc123' (no <RETURN>):

~/src/rtems $ qemu-system-arm -net none -nographic -M realview-pbx-a9 \

-m 256M -kernel build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl10.exe

* BEGIN OF TEST libdl (RTL) 10 *
* TEST VERSION: 6.0.0.d9bdf166644f612dd628fe4951c12c6f8e94ba5f
* TEST STATE: USER_INPUT
* TEST BUILD: RTEMS_DEBUG RTEMS_NETWORKING RTEMS_POSIX_API RTEMS_SMP
* TEST TOOLS: 10.2.1 20200904 \

(RTEMS 6, RSB 31f936a7b74d60bda609a9960c6e1a705ba54974, Newlib a0d7982)

RTL (libdl) commands: dl, rtl

RTEMS Shell on /dev/foobar. Use 'help' to list commands.
SHLL / # abc123

Then move the cursor onto the '1' by hitting three times the <ARROW-LEFT> key.
Next type <CTRL>-U:

SHLL / # 123

Note that the cursor is at the end of the line (after '3') instead of correctly
at the beginning (on the '1'), now.

Continuing typing 'echo ' incorrectly results in the output:

SHLL / # 123echo 123

The patch changes this behavior so that the cursor in the second last step will
be on the '1' and typing 'echo ' will then correctly reflected as:

SHLL / # echo 123

Close #4097.

Note: See TracTickets for help on using tickets.