aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKunMing Xie <qqzz014@gmail.com>2017-09-10 18:21:52 +0800
committerJustin M. Keyes <justinkz@gmail.com>2017-09-10 12:21:52 +0200
commit713a957e9c90fc1c57935e33346347807595f946 (patch)
tree9824c2aee3347f526534a5f531691b209f15be26 /src
parentd173d48177fd55928a9acd64a06d47371bbb6b09 (diff)
downloadrneovim-713a957e9c90fc1c57935e33346347807595f946.tar.gz
rneovim-713a957e9c90fc1c57935e33346347807595f946.tar.bz2
rneovim-713a957e9c90fc1c57935e33346347807595f946.zip
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) https://github.com/vim/vim/commit/23fa81d2223cd9bb7c51829c48047b2976bc2d11 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) https://github.com/vim/vim/commit/0b5c93a7f266cd8c90ea27bdaf9f7214a95d64d7
Diffstat (limited to 'src')
-rw-r--r--src/nvim/normal.c5
-rw-r--r--src/nvim/ops.c2
-rw-r--r--src/nvim/testdir/test_visual.vim13
-rw-r--r--src/nvim/version.c4
4 files changed, 20 insertions, 4 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 6415bec846..c40ed58550 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -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;
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index c01840cfd0..99dc4670f1 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -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
diff --git a/src/nvim/testdir/test_visual.vim b/src/nvim/testdir/test_visual.vim
index cf0e535937..74c26e3d66 100644
--- a/src/nvim/testdir/test_visual.vim
+++ b/src/nvim/testdir/test_visual.vim
@@ -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
diff --git a/src/nvim/version.c b/src/nvim/version.c
index ce1cc03c1f..e7061fff9d 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -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