]> git.pld-linux.org Git - packages/bash.git/blob - bash30-009
- makes bash work on 2.4 with new glibc (WCONTINUED is unhandled by 2.4)
[packages/bash.git] / bash30-009
1                              BASH PATCH REPORT
2                              =================
3
4 Bash-Release: 3.0
5 Patch-ID: bash30-009
6
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
11
12 Bug-Description:
13
14 -->
15 Steps to Reproduce:
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)
23
24 The last two characters are inexplicably swapped
25 after the last character is changed.
26 <--
27
28 Patch:
29
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
32 ***************
33 *** 691,695 ****
34     wchar_t wc;
35     char mb[MB_LEN_MAX+1];
36 !   int mblen;
37     mbstate_t ps;
38   
39 --- 693,697 ----
40     wchar_t wc;
41     char mb[MB_LEN_MAX+1];
42 !   int mblen, p;
43     mbstate_t ps;
44   
45 ***************
46 *** 714,722 ****
47         if (wc)
48         {
49           mblen = wcrtomb (mb, wc, &ps);
50           if (mblen >= 0)
51             mb[mblen] = '\0';
52           rl_begin_undo_group ();
53 !         rl_delete (1, 0);
54           rl_insert_text (mb);
55           rl_end_undo_group ();
56 --- 716,727 ----
57         if (wc)
58         {
59 +         p = rl_point;
60           mblen = wcrtomb (mb, wc, &ps);
61           if (mblen >= 0)
62             mb[mblen] = '\0';
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? */
67           rl_insert_text (mb);
68           rl_end_undo_group ();
69 ***************
70 *** 1311,1320 ****
71   #if defined (HANDLE_MULTIBYTE)
72         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
73 !       while (_rl_insert_char (1, c))
74 !         {
75 !           RL_SETSTATE (RL_STATE_MOREINPUT);
76 !           c = rl_read_key ();
77 !           RL_UNSETSTATE (RL_STATE_MOREINPUT);
78 !         }
79         else
80   #endif
81 --- 1316,1329 ----
82   #if defined (HANDLE_MULTIBYTE)
83         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
84 !       {
85 !         if (rl_point < p)             /* Did we retreat at EOL? */
86 !           rl_point++;
87 !         while (_rl_insert_char (1, c))
88 !           {
89 !             RL_SETSTATE (RL_STATE_MOREINPUT);
90 !             c = rl_read_key ();
91 !             RL_UNSETSTATE (RL_STATE_MOREINPUT);
92 !           }
93 !       }
94         else
95   #endif
96
97 *** ../bash-3.0/patchlevel.h    Wed Aug 22 08:05:39 2001
98 --- patchlevel.h        Thu Sep  2 15:04:32 2004
99 ***************
100 *** 26,30 ****
101      looks for to find the patch level (for the sccs version string). */
102   
103 ! #define PATCHLEVEL 8
104   
105   #endif /* _PATCHLEVEL_H_ */
106 --- 26,30 ----
107      looks for to find the patch level (for the sccs version string). */
108   
109 ! #define PATCHLEVEL 9
110   
111   #endif /* _PATCHLEVEL_H_ */
This page took 0.036678 seconds and 3 git commands to generate.