]>
Commit | Line | Data |
---|---|---|
bb987377 ER |
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 /// |