aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/edit.c2
-rw-r--r--src/nvim/screen.c4
-rw-r--r--src/nvim/version.c8
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