vim-patch:8.0.0282 vim-patch:8.0.0291 (#7255)

vim-patch:8.0.0291

Problem:    Visual block insertion does not insert in all lines.
Solution:   Don't bail out of insert too early. Add a test. (Christian
            Brabandt, closes vim/vim#1290)

23fa81d222

vim-patch:8.0.0282

Problem:    When doing a Visual selection and using "I" to go to insert mode,
            CTRL-O needs to be used twice to go to Normal mode.
            (Coacher)
Solution:   Check for the return value of edit(). (Christian Brabandt,
            closes #1290)

0b5c93a7f2
This commit is contained in:
KunMing Xie 2017-09-10 18:21:52 +08:00 committed by Justin M. Keyes
parent d173d48177
commit 713a957e9c
4 changed files with 20 additions and 4 deletions

View File

@ -1942,8 +1942,11 @@ void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank)
* the lines. */
auto_format(false, true);
if (restart_edit == 0)
if (restart_edit == 0) {
restart_edit = restart_edit_save;
} else {
cap->retval |= CA_COMMAND_BUSY;
}
}
break;

View File

@ -2060,7 +2060,7 @@ void op_insert(oparg_T *oap, long count1)
}
t1 = oap->start;
edit(NUL, false, (linenr_T)count1);
(void)edit(NUL, false, (linenr_T)count1);
// When a tab was inserted, and the characters in front of the tab
// have been converted to a tab as well, the column of the cursor

View File

@ -15,3 +15,16 @@ func Test_block_shift_multibyte()
call assert_equal(' ヹxxx', getline(2))
q!
endfunc
func Test_Visual_ctrl_o()
new
call setline(1, ['one', 'two', 'three'])
call cursor(1,2)
set noshowmode
set tw=0
call feedkeys("\<c-v>jjlIa\<c-\>\<c-o>:set tw=88\<cr>\<esc>", 'tx')
call assert_equal(['oane', 'tawo', 'tahree'], getline(1, 3))
call assert_equal(88, &tw)
set tw&
bw!
endfu

View File

@ -661,7 +661,7 @@ static const int included_patches[] = {
// 294,
// 293,
// 292,
// 291,
291,
290,
// 289,
// 288 NA
@ -670,7 +670,7 @@ static const int included_patches[] = {
// 285 NA
// 284 NA
// 283,
// 282,
282,
// 281 NA
280,
// 279 NA