patch 8.1.0859: "%v" in 'errorformat' does handle multi-byte characters

Problem:    "%v" in 'errorformat' does handle multi-byte characters.
Solution:   Handle multi-byte characters. (Yegappan Lakshmanan, closes #3700)
diff --git a/src/quickfix.c b/src/quickfix.c
index e292819..3bfa027 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -3047,9 +3047,6 @@
 	char_u		*qf_pattern)
 {
     linenr_T		i;
-    char_u		*line;
-    colnr_T		screen_col;
-    colnr_T		char_col;
 
     if (qf_pattern == NULL)
     {
@@ -3063,29 +3060,11 @@
 	}
 	if (qf_col > 0)
 	{
-	    curwin->w_cursor.col = qf_col - 1;
 	    curwin->w_cursor.coladd = 0;
 	    if (qf_viscol == TRUE)
-	    {
-		// Check each character from the beginning of the error
-		// line up to the error column.  For each tab character
-		// found, reduce the error column value by the length of
-		// a tab character.
-		line = ml_get_curline();
-		screen_col = 0;
-		for (char_col = 0; char_col < curwin->w_cursor.col; ++char_col)
-		{
-		    if (*line == NUL)
-			break;
-		    if (*line++ == '\t')
-		    {
-			curwin->w_cursor.col -= 7 - (screen_col % 8);
-			screen_col += 8 - (screen_col % 8);
-		    }
-		    else
-			++screen_col;
-		}
-	    }
+		coladvance(qf_col - 1);
+	    else
+		curwin->w_cursor.col = qf_col - 1;
 	    curwin->w_set_curswant = TRUE;
 	    check_cursor();
 	}