7 Bug-Reported-by: Tim Waugh <twaugh@redhat.com>
8 Bug-Reference-ID: <20040810083805.GT2177@redhat.com>
9 Bug-Reference-URL: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=129526b
10 http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00116.html
16 1. Launch a bash shell
17 2. Set editing mode to 'vi' with 'set -o vi'
18 3. Type any command, but don't hit return
19 4. Enter vi-command mode by hitting the escape key
20 5. Go to the end of line with the '$' command
21 6. Type 'r' to change the last character
22 7. Type any character (other than what the character already is)
24 The last two characters are inexplicably swapped
25 after the last character is changed.
30 *** ../bash-3.0/lib/readline/vi_mode.c Tue Jul 13 14:08:27 2004
31 --- lib/readline/vi_mode.c Tue Aug 17 00:12:09 2004
35 char mb[MB_LEN_MAX+1];
41 char mb[MB_LEN_MAX+1];
49 mblen = wcrtomb (mb, wc, &ps);
52 rl_begin_undo_group ();
60 mblen = wcrtomb (mb, wc, &ps);
63 rl_begin_undo_group ();
64 ! rl_vi_delete (1, 0);
65 ! if (rl_point < p) /* Did we retreat at EOL? */
66 ! rl_point++; /* XXX - should we advance more than 1 for mbchar? */
71 #if defined (HANDLE_MULTIBYTE)
72 if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
73 ! while (_rl_insert_char (1, c))
75 ! RL_SETSTATE (RL_STATE_MOREINPUT);
77 ! RL_UNSETSTATE (RL_STATE_MOREINPUT);
82 #if defined (HANDLE_MULTIBYTE)
83 if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
85 ! if (rl_point < p) /* Did we retreat at EOL? */
87 ! while (_rl_insert_char (1, c))
89 ! RL_SETSTATE (RL_STATE_MOREINPUT);
91 ! RL_UNSETSTATE (RL_STATE_MOREINPUT);
97 *** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001
98 --- patchlevel.h Thu Sep 2 15:04:32 2004
101 looks for to find the patch level (for the sccs version string). */
103 ! #define PATCHLEVEL 8
105 #endif /* _PATCHLEVEL_H_ */
107 looks for to find the patch level (for the sccs version string). */
109 ! #define PATCHLEVEL 9
111 #endif /* _PATCHLEVEL_H_ */