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;
 		}