vim-patch:8.1.1988: :startinsert! does not work the same way as "A"

Problem:    :startinsert! does not work the same way as "A".
Solution:   Use the same code to move the cursor. (closes vim/vim#4896)
8d3b51084a
This commit is contained in:
Jan Edmund Lazo
2019-09-06 23:01:25 -04:00
parent 158b78062e
commit a96b3677c6
3 changed files with 40 additions and 19 deletions

View File

@@ -8305,15 +8305,14 @@ static void ex_startinsert(exarg_T *eap)
if (!curwin->w_cursor.lnum) {
curwin->w_cursor.lnum = 1;
}
coladvance((colnr_T)MAXCOL);
curwin->w_curswant = MAXCOL;
curwin->w_set_curswant = FALSE;
set_cursor_for_append_to_line();
}
/* Ignore the command when already in Insert mode. Inserting an
* expression register that invokes a function can do this. */
if (State & INSERT)
// Ignore the command when already in Insert mode. Inserting an
// expression register that invokes a function can do this.
if (State & INSERT) {
return;
}
if (eap->cmdidx == CMD_startinsert)
restart_edit = 'a';
@@ -8325,7 +8324,7 @@ static void ex_startinsert(exarg_T *eap)
if (!eap->forceit) {
if (eap->cmdidx == CMD_startinsert)
restart_edit = 'i';
curwin->w_curswant = 0; /* avoid MAXCOL */
curwin->w_curswant = 0; // avoid MAXCOL
}
if (VIsual_active) {