diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/edit.c | 2 | ||||
-rw-r--r-- | src/nvim/screen.c | 4 | ||||
-rw-r--r-- | src/nvim/version.c | 8 |
3 files changed, 11 insertions, 3 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 03dceaf092..df45f57606 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -5752,6 +5752,8 @@ stop_insert ( if (curwin->w_cursor.lnum != tpos.lnum) curwin->w_cursor = tpos; else { + /* reset tpos, could have been invalidated in the loop above */ + tpos = curwin->w_cursor; tpos.col++; if (cc != NUL && gchar_pos(&tpos) == NUL) { ++curwin->w_cursor.col; // put cursor back on the NUL diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 6e4c17f49e..61aa775384 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -3444,6 +3444,10 @@ win_line ( 1); // TODO: is passing p for start of the line OK? n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol, NULL) - 1; + if (c == TAB && n_extra + col > wp->w_width) { + n_extra = (int)wp->w_buffer->b_p_ts + - vcol % (int)wp->w_buffer->b_p_ts - 1; + } c_extra = ' '; if (vim_iswhite(c)) { if (c == TAB) diff --git a/src/nvim/version.c b/src/nvim/version.c index b0bd38b7de..3aa8ea911c 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -178,6 +178,8 @@ static char *(features[]) = { }; static int included_patches[] = { + //591 NA + //590, //589 NA //588, //587, @@ -245,15 +247,15 @@ static int included_patches[] = { //525, //524, //523 NA - //522, + //522 NA 521, 520, //519, 518, - //517, + 517, 516, //515, - //514, + 514, 513, //512 NA //511 NA |