]> git.pld-linux.org Git - packages/vim.git/blob - 7.3.181
- new
[packages/vim.git] / 7.3.181
1 To: vim_dev@googlegroups.com
2 Subject: Patch 7.3.181
3 Fcc: outbox
4 From: Bram Moolenaar <Bram@moolenaar.net>
5 Mime-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8 ------------
9
10 Patch 7.3.181
11 Problem:    When repeating the insert of CTRL-V or a digraph the display may
12             not be updated correctly.
13 Solution:   Only call edit_unputchar() after edit_putchar(). (Lech Lorens)
14 Files:      src/edit.c
15
16
17 *** ../vim-7.3.180/src/edit.c   2010-11-10 17:11:29.000000000 +0100
18 --- src/edit.c  2011-05-10 14:16:41.000000000 +0200
19 ***************
20 *** 1553,1564 ****
21 --- 1553,1568 ----
22   ins_ctrl_v()
23   {
24       int               c;
25 +     int               did_putchar = FALSE;
26   
27       /* may need to redraw when no more chars available now */
28       ins_redraw(FALSE);
29   
30       if (redrawing() && !char_avail())
31 +     {
32         edit_putchar('^', TRUE);
33 +       did_putchar = TRUE;
34 +     }
35       AppendToRedobuff((char_u *)CTRL_V_STR);   /* CTRL-V */
36   
37   #ifdef FEAT_CMDL_INFO
38 ***************
39 *** 1566,1573 ****
40   #endif
41   
42       c = get_literal();
43 !     edit_unputchar();  /* when line fits in 'columns' the '^' is at the start
44 !                         of the next line and will not be redrawn */
45   #ifdef FEAT_CMDL_INFO
46       clear_showcmd();
47   #endif
48 --- 1570,1579 ----
49   #endif
50   
51       c = get_literal();
52 !     if (did_putchar)
53 !       /* when the line fits in 'columns' the '^' is at the start of the next
54 !        * line and will not removed by the redraw */
55 !       edit_unputchar();
56   #ifdef FEAT_CMDL_INFO
57       clear_showcmd();
58   #endif
59 ***************
60 *** 9637,9642 ****
61 --- 9643,9649 ----
62   {
63       int           c;
64       int           cc;
65 +     int           did_putchar = FALSE;
66   
67       pc_status = PC_STATUS_UNSET;
68       if (redrawing() && !char_avail())
69 ***************
70 *** 9645,9650 ****
71 --- 9652,9658 ----
72         ins_redraw(FALSE);
73   
74         edit_putchar('?', TRUE);
75 +       did_putchar = TRUE;
76   #ifdef FEAT_CMDL_INFO
77         add_to_showcmd_c(Ctrl_K);
78   #endif
79 ***************
80 *** 9661,9668 ****
81       c = plain_vgetc();
82       --no_mapping;
83       --allow_keys;
84 !     edit_unputchar();  /* when line fits in 'columns' the '?' is at the start
85 !                         of the next line and will not be redrawn */
86   
87       if (IS_SPECIAL(c) || mod_mask)        /* special key */
88       {
89 --- 9669,9678 ----
90       c = plain_vgetc();
91       --no_mapping;
92       --allow_keys;
93 !     if (did_putchar)
94 !       /* when the line fits in 'columns' the '?' is at the start of the next
95 !        * line and will not be removed by the redraw */
96 !       edit_unputchar();
97   
98       if (IS_SPECIAL(c) || mod_mask)        /* special key */
99       {
100 ***************
101 *** 9674,9679 ****
102 --- 9684,9690 ----
103       }
104       if (c != ESC)
105       {
106 +       did_putchar = FALSE;
107         if (redrawing() && !char_avail())
108         {
109             /* may need to redraw when no more chars available now */
110 ***************
111 *** 9681,9691 ****
112   
113             if (char2cells(c) == 1)
114             {
115 -               /* first remove the '?', otherwise it's restored when typing
116 -                * an ESC next */
117 -               edit_unputchar();
118                 ins_redraw(FALSE);
119                 edit_putchar(c, TRUE);
120             }
121   #ifdef FEAT_CMDL_INFO
122             add_to_showcmd_c(c);
123 --- 9692,9700 ----
124   
125             if (char2cells(c) == 1)
126             {
127                 ins_redraw(FALSE);
128                 edit_putchar(c, TRUE);
129 +               did_putchar = TRUE;
130             }
131   #ifdef FEAT_CMDL_INFO
132             add_to_showcmd_c(c);
133 ***************
134 *** 9696,9703 ****
135         cc = plain_vgetc();
136         --no_mapping;
137         --allow_keys;
138 !       edit_unputchar();  /* when line fits in 'columns' the '?' is at the
139 !                             start of the next line and will not be redrawn */
140         if (cc != ESC)
141         {
142             AppendToRedobuff((char_u *)CTRL_V_STR);
143 --- 9705,9714 ----
144         cc = plain_vgetc();
145         --no_mapping;
146         --allow_keys;
147 !       if (did_putchar)
148 !           /* when the line fits in 'columns' the '?' is at the start of the
149 !            * next line and will not be removed by a redraw */
150 !           edit_unputchar();
151         if (cc != ESC)
152         {
153             AppendToRedobuff((char_u *)CTRL_V_STR);
154 *** ../vim-7.3.180/src/version.c        2011-05-10 13:38:23.000000000 +0200
155 --- src/version.c       2011-05-10 14:20:40.000000000 +0200
156 ***************
157 *** 716,717 ****
158 --- 716,719 ----
159   {   /* Add new patch number below this line */
160 + /**/
161 +     181,
162   /**/
163
164 -- 
165 hundred-and-one symptoms of being an internet addict:
166 74. Your most erotic dreams are about cybersex
167
168  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
169 ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
170 \\\  an exciting new programming language -- http://www.Zimbu.org        ///
171  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
This page took 0.048952 seconds and 3 git commands to generate.