changeset 12545:241fbf588b95 v8.0.1151

patch 8.0.1151: "vim -c startinsert!" doesn't append commit https://github.com/vim/vim/commit/09ca932f8e7d63a83b39baa7c03d4c6145e3baab Author: Bram Moolenaar <Bram@vim.org> Date: Tue Sep 26 17:40:45 2017 +0200 patch 8.0.1151: "vim -c startinsert!" doesn't append Problem: "vim -c startinsert!" doesn't append. Solution: Correct line number on startup. (Christian Brabandt, closes https://github.com/vim/vim/issues/2117)
author Christian Brabandt <cb@256bit.org>
date Tue, 26 Sep 2017 17:45:04 +0200
parents cc430340048d
children 088dd3306316
files src/ex_docmd.c src/testdir/test_startup.vim src/version.c
diffstat 3 files changed, 29 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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
--- 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,