diff options
-rw-r--r-- | src/ex_docmd.c | 3 | ||||
-rw-r--r-- | src/testdir/test_startup.vim | 24 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 29 insertions, 0 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index c740d037f..e2dfd9225 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -10294,6 +10294,9 @@ ex_startinsert(exarg_T *eap) { if (eap->forceit) { + /* cursor line can be zero on startup */ + if (!curwin->w_cursor.lnum) + curwin->w_cursor.lnum = 1; coladvance((colnr_T)MAXCOL); curwin->w_curswant = MAXCOL; curwin->w_set_curswant = FALSE; diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim index af2b3c1d4..6f67bfc11 100644 --- a/src/testdir/test_startup.vim +++ b/src/testdir/test_startup.vim @@ -263,3 +263,27 @@ func Test_default_term() call assert_match("defaulting to 'ansi'", out) let $TERM = save_term endfunc + +func Test_zzz_startinsert() + " Test :startinsert + call writefile(['123456'], 'Xtestout') + let after = [ + \ ':startinsert', + \ 'call feedkeys("foobar\<c-o>:wq\<cr>","t")' + \ ] + if RunVim([], after, 'Xtestout') + let lines = readfile('Xtestout') + call assert_equal(['foobar123456'], lines) + endif + " Test :startinsert! + call writefile(['123456'], 'Xtestout') + let after = [ + \ ':startinsert!', + \ 'call feedkeys("foobar\<c-o>:wq\<cr>","t")' + \ ] + if RunVim([], after, 'Xtestout') + let lines = readfile('Xtestout') + call assert_equal(['123456foobar'], lines) + endif + call delete('Xtestout') +endfunc diff --git a/src/version.c b/src/version.c index e96e77b37..f948b8e30 100644 --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1151, +/**/ 1150, /**/ 1149, |