]> git.pld-linux.org Git - packages/bash.git/blob - bash30-011
24a83f78a44a6029024371f02da174dd bash30-001
[packages/bash.git] / bash30-011
1                              BASH PATCH REPORT
2                              =================
3
4 Bash-Release: 3.0
5 Patch-ID: bash30-011
6
7 Bug-Reported-by: Egmont Koblinger <egmont@uhulinux.hu>
8 Bug-Reference-ID: <Pine.LNX.4.58L0.0407282151140.8088@sziami.cs.bme.hu>
9 Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00277.html
10
11 Bug-Description:
12
13 I've just upgraded to readline 5.0 and bash 3.0 and tried them with UTF-8
14 encoding. I found line editing to be quite buggy:
15
16 I type an accented letter, let's say <E1>. Then <E1> appears. I press the left
17 arrow, the cursor goes back, it is now over <E1>. I press <E9>. Now <E9><E1> is
18 visible, which is correct, but the cursor is past the two letters, though
19 it should be over <E1>. Here only the first Left arrow takes affect, moves
20 the cursor over <E1>, but the 2nd time I press Left, it just beeps, doesn't
21 move to the first char (<E9>). Now a Right arrow doesn't move the cursor, but
22 causes further Left and Right arrows to work as expected. To go on,
23 similar bug occurs nearly every time that I insert an accented letter
24 before or amongs other ones (but not at the end of the line). When the
25 command line has about ten or twenty accented letters (and no or hardly
26 any non-accented ones), line editing becomes a total chaos, where
27 sometimes inserting another accented letter causes the cursor to jump many
28 characters to the right, and pressing the Left arrow sometimes causes the
29 cursor to jump back lots of characters at once.
30
31 Patch:
32
33 *** ../bash-3.0/lib/readline/mbutil.c   Wed Jan 14 09:44:52 2004
34 --- lib/readline/mbutil.c       Wed Aug 18 22:25:57 2004
35 ***************
36 *** 127,135 ****
37       {
38         tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
39 !       while (wcwidth (wc) == 0)
40         {
41           point += tmp;
42           tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
43 !         if (tmp == (size_t)(0) || tmp == (size_t)(-1) || tmp == (size_t)(-2))
44             break;
45         }
46 --- 127,135 ----
47       {
48         tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
49 !       while (tmp > 0 && wcwidth (wc) == 0)
50         {
51           point += tmp;
52           tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
53 !         if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp))
54             break;
55         }
56
57 *** ../bash-3.0/patchlevel.h    Wed Aug 22 08:05:39 2001
58 --- patchlevel.h        Thu Sep  2 15:04:32 2004
59 ***************
60 *** 26,30 ****
61      looks for to find the patch level (for the sccs version string). */
62   
63 ! #define PATCHLEVEL 10
64   
65   #endif /* _PATCHLEVEL_H_ */
66 --- 26,30 ----
67      looks for to find the patch level (for the sccs version string). */
68   
69 ! #define PATCHLEVEL 11
70   
71   #endif /* _PATCHLEVEL_H_ */
This page took 0.071308 seconds and 4 git commands to generate.