Mercurial > vim
diff src/edit.c @ 12323:4dba3e4f3b01 v8.0.1041
patch 8.0.1041: bogus characters when indenting during visual-block append
commit https://github.com/vim/vim/commit/e2e69e48134cbfdedea7802810932f8592705024
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 2 20:30:35 2017 +0200
patch 8.0.1041: bogus characters when indenting during visual-block append
Problem: Bogus characters appear when indenting kicks in while doing a
visual-block append.
Solution: Recompute when indenting is done. (Christian Brabandt)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 02 Sep 2017 20:45:04 +0200 |
parents | 1ff5e5dfa9b0 |
children | 68d7bc045dbe |
line wrap: on
line diff
--- a/src/edit.c +++ b/src/edit.c @@ -5182,7 +5182,7 @@ ins_complete(int c, int enable_pum) * first non_blank in the line, if it is not a wordchar * include it to get a better pattern, but then we don't * want the "\\<" prefix, check it bellow */ - compl_col = (colnr_T)(skipwhite(line) - line); + compl_col = (colnr_T)getwhitecols(line); compl_startpos.col = compl_col; compl_startpos.lnum = curwin->w_cursor.lnum; compl_cont_status &= ~CONT_SOL; /* clear SOL if present */ @@ -5348,7 +5348,7 @@ ins_complete(int c, int enable_pum) } else if (CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) { - compl_col = (colnr_T)(skipwhite(line) - line); + compl_col = (colnr_T)getwhitecols(line); compl_length = (int)curs_col - (int)compl_col; if (compl_length < 0) /* cursor in indent: empty pattern */ compl_length = 0; @@ -8208,8 +8208,7 @@ in_cinkeys( { /* "0=word": Check if there are only blanks before the * word. */ - line = ml_get_curline(); - if ((int)(skipwhite(line) - line) != + if (getwhitecols(line) != (int)(curwin->w_cursor.col - (p - look))) match = FALSE; }