Subject: bin/32500: ksh (emacs-mode) has problem deleting words with ESC+d
To: None <gnats-admin@netbsd.org, netbsd-bugs@netbsd.org>
From: None <philipp.lay@rwth-aachen.de>
List: netbsd-bugs
Date: 01/11/2006 22:15:00
>Number: 32500
>Category: bin
>Synopsis: ksh (emacs-mode) has problem deleting words with ESC+d
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: bin-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jan 11 22:15:00 +0000 2006
>Originator: Philipp Lay
>Release: NetBSD 3.0_STABLE
>Organization:
>Environment:
System: NetBSD euklid.lan 3.0_STABLE NetBSD 3.0_STABLE (EUKLID) #40: Tue Jan 10 21:57:55 CET 2006 lay@euklid.lan:/usr/src/sys/arch/i386/compile/EUKLID i386
Architecture: i386
Machine: i386
>Description:
ksh (in emacs-mode) sets the cursor to a wrong position if you delete a
word with ESC+d (or meta+d) while the edit-buffer is "scrolled left" and
includes more characters than displayed.
>How-To-Repeat:
start /bin/ksh in emacs mode and type this (you need to add some words if your
terminal has more then 80 columns):
aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbb cccccccccccccccccccc dddddddddddddddddddd eeeeeeeeeeeeeeeeeeee
then go back with the cursor to the beginning of the "bbbb..."-block und use
ESC+d to delete this block. the cursor is now at a wrong position, pressing
CTRL+l redraws the line and shows the cursor at the right position.
>Fix:
a patch for bin/ksh/emacs.c:
--- bin/ksh/emacs.c-orig 2006-01-11 20:08:44.000000000 +0100
+++ bin/ksh/emacs.c 2006-01-11 21:40:03.000000000 +0100
@@ -583,7 +583,7 @@
* there is no need to ' ','\b'.
* But if we must, make sure we do the minimum.
*/
- if ((i = x_displen) > 0)
+ if ((i = xx_cols - 2 - x_col) > 0)
{
j = (j < i) ? j : i;
i = j;