diff options
Diffstat (limited to 'data/vim/patches/8.1.0859')
-rw-r--r-- | data/vim/patches/8.1.0859 | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0859 b/data/vim/patches/8.1.0859 new file mode 100644 index 000000000..47d9d6a7b --- /dev/null +++ b/data/vim/patches/8.1.0859 @@ -0,0 +1,153 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0859 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.0859 +Problem: "%v" in 'errorformat' does handle multi-byte characters. +Solution: Handle multi-byte characters. (Yegappan Lakshmanan, closes #3700) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + + +*** ../vim-8.1.0858/src/quickfix.c 2019-01-26 17:43:16.226527267 +0100 +--- src/quickfix.c 2019-01-31 14:24:27.575216468 +0100 +*************** +*** 3047,3055 **** + char_u *qf_pattern) + { + linenr_T i; +- char_u *line; +- colnr_T screen_col; +- colnr_T char_col; + + if (qf_pattern == NULL) + { +--- 3047,3052 ---- +*************** +*** 3063,3091 **** + } + 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; +! } +! } + curwin->w_set_curswant = TRUE; + check_cursor(); + } +--- 3060,3070 ---- + } + if (qf_col > 0) + { + curwin->w_cursor.coladd = 0; + if (qf_viscol == TRUE) +! coladvance(qf_col - 1); +! else +! curwin->w_cursor.col = qf_col - 1; + curwin->w_set_curswant = TRUE; + check_cursor(); + } +*** ../vim-8.1.0858/src/testdir/test_quickfix.vim 2019-01-11 14:49:25.380107431 +0100 +--- src/testdir/test_quickfix.vim 2019-01-31 14:26:43.042269859 +0100 +*************** +*** 3843,3845 **** +--- 3843,3901 ---- + call delete('Xtestfile1') + call delete('Xtestfile2') + endfunc ++ ++ " Test for parsing entries using visual screen column ++ func Test_viscol() ++ enew ++ call writefile(["Col1\tCol2\tCol3"], 'Xfile1') ++ edit Xfile1 ++ ++ " Use byte offset for column number ++ set efm& ++ cexpr "Xfile1:1:5:XX\nXfile1:1:9:YY\nXfile1:1:20:ZZ" ++ call assert_equal([5, 8], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([9, 12], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([14, 20], [col('.'), virtcol('.')]) ++ ++ " Use screen column offset for column number ++ set efm=%f:%l:%v:%m ++ cexpr "Xfile1:1:8:XX\nXfile1:1:12:YY\nXfile1:1:20:ZZ" ++ call assert_equal([5, 8], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([9, 12], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([14, 20], [col('.'), virtcol('.')]) ++ cexpr "Xfile1:1:6:XX\nXfile1:1:15:YY\nXfile1:1:24:ZZ" ++ call assert_equal([5, 8], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([10, 16], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([14, 20], [col('.'), virtcol('.')]) ++ ++ enew ++ call writefile(["Col1\täü\töß\tCol4"], 'Xfile1') ++ ++ " Use byte offset for column number ++ set efm& ++ cexpr "Xfile1:1:8:XX\nXfile1:1:11:YY\nXfile1:1:16:ZZ" ++ call assert_equal([8, 10], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([11, 17], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([16, 25], [col('.'), virtcol('.')]) ++ ++ " Use screen column offset for column number ++ set efm=%f:%l:%v:%m ++ cexpr "Xfile1:1:10:XX\nXfile1:1:17:YY\nXfile1:1:25:ZZ" ++ call assert_equal([8, 10], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([11, 17], [col('.'), virtcol('.')]) ++ cnext ++ call assert_equal([16, 25], [col('.'), virtcol('.')]) ++ ++ enew | only ++ set efm& ++ call delete('Xfile1') ++ endfunc +*** ../vim-8.1.0858/src/version.c 2019-01-31 14:12:52.760076333 +0100 +--- src/version.c 2019-01-31 14:22:32.848018305 +0100 +*************** +*** 785,786 **** +--- 785,788 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 859, + /**/ + +-- +There are 10 kinds of people: Those who understand binary and those who don't. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |