To: vim_dev@googlegroups.com Subject: Patch 8.0.1169 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.1169 Problem: Highlignting one char too many with 'list' and 'cul'. Solution: Check for 'list' being active. (Ozaki Kiichi, closes #2177) Files: src/screen.c, src/testdir/test_highlight.vim *** ../vim-8.0.1168/src/screen.c 2017-09-30 21:23:51.679049834 +0200 --- src/screen.c 2017-10-01 14:31:29.078627277 +0200 *************** *** 4169,4175 **** cur = cur->next; } /* Only highlight one character after the last column. */ ! if (*ptr == NUL && did_line_attr >= 1) search_attr = 0; } #endif --- 4169,4176 ---- cur = cur->next; } /* Only highlight one character after the last column. */ ! if (*ptr == NUL && (did_line_attr >= 1 ! || (wp->w_p_list && lcs_eol_one == -1))) search_attr = 0; } #endif *** ../vim-8.0.1168/src/testdir/test_highlight.vim 2017-09-30 21:23:51.679049834 +0200 --- src/testdir/test_highlight.vim 2017-10-01 14:31:29.078627277 +0200 *************** *** 59,64 **** --- 59,74 ---- return [hiCursorLine, hi_ul, hi_bg] endfunction + function! Check_lcs_eol_attrs(attrs, row, col) + let save_lcs = &lcs + set list + + call assert_equal(a:attrs, ScreenAttrs(a:row, a:col)[0]) + + set nolist + let &lcs = save_lcs + endfunction + func Test_highlight_eol_with_cursorline() let [hiCursorLine, hi_ul, hi_bg] = HiCursorLine() *************** *** 83,89 **** " expected: " 'abcd ' " ^^^^ underline ! " ^^^^^^ 'Search' highlight with underline let attrs = ScreenAttrs(1, 10)[0] call assert_equal(repeat([attrs[0]], 4), attrs[0:3]) call assert_equal([attrs[4]] + repeat([attrs[5]], 5), attrs[4:9]) --- 93,100 ---- " expected: " 'abcd ' " ^^^^ underline ! " ^ 'Search' highlight with underline ! " ^^^^^ underline let attrs = ScreenAttrs(1, 10)[0] call assert_equal(repeat([attrs[0]], 4), attrs[0:3]) call assert_equal([attrs[4]] + repeat([attrs[5]], 5), attrs[4:9]) *************** *** 91,96 **** --- 102,108 ---- call assert_notequal(attrs[4], attrs[5]) call assert_notequal(attrs0[0], attrs[0]) call assert_notequal(attrs0[4], attrs[4]) + call Check_lcs_eol_attrs(attrs, 1, 10) if IsColorable() " bg-color *************** *** 109,114 **** --- 121,127 ---- call assert_notequal(attrs[4], attrs[5]) call assert_notequal(attrs0[0], attrs[0]) call assert_notequal(attrs0[5], attrs[5]) + call Check_lcs_eol_attrs(attrs, 1, 10) endif call CloseWindow() *************** *** 168,173 **** --- 181,187 ---- call assert_notequal(attrs[5], attrs[6]) call assert_notequal(attrs0[0], attrs[0]) call assert_notequal(attrs0[4], attrs[4]) + call Check_lcs_eol_attrs(attrs, 1, 15) if IsColorable() " bg-color *************** *** 187,192 **** --- 201,207 ---- call assert_notequal(attrs[5], attrs[6]) call assert_notequal(attrs0[0], attrs[0]) call assert_equal(attrs0[4], attrs[4]) + call Check_lcs_eol_attrs(attrs, 1, 15) endif call CloseWindow() *************** *** 223,228 **** --- 238,244 ---- call assert_notequal(attrs[4], attrs[5]) call assert_notequal(attrs0[9], attrs[9]) call assert_notequal(attrs0[5], attrs[5]) + call Check_lcs_eol_attrs(attrs, 1, 10) if IsColorable() " bg-color *************** *** 241,246 **** --- 257,263 ---- call assert_notequal(attrs[5], attrs[4]) call assert_notequal(attrs0[9], attrs[9]) call assert_notequal(attrs0[4], attrs[4]) + call Check_lcs_eol_attrs(attrs, 1, 10) endif call CloseWindow() *************** *** 274,279 **** --- 291,297 ---- call assert_notequal(attrs[4], attrs[5]) call assert_notequal(attrs0[0], attrs[0]) call assert_notequal(attrs0[4], attrs[4]) + call Check_lcs_eol_attrs(attrs, 5, 10) if IsColorable() " bg-color *************** *** 292,297 **** --- 310,316 ---- call assert_notequal(attrs[4], attrs[5]) call assert_notequal(attrs0[0], attrs[0]) call assert_notequal(attrs0[5], attrs[5]) + call Check_lcs_eol_attrs(attrs, 5, 10) endif setlocal nocursorline nowrap *************** *** 314,319 **** --- 333,339 ---- call assert_notequal(attrs[6], attrs[7]) call assert_notequal(attrs0[0], attrs[0]) call assert_notequal(attrs0[6], attrs[6]) + call Check_lcs_eol_attrs(attrs, 1, 10) if IsColorable() " bg-color *************** *** 332,337 **** --- 352,358 ---- call assert_notequal(attrs[6], attrs[7]) call assert_notequal(attrs0[0], attrs[0]) call assert_notequal(attrs0[7], attrs[7]) + call Check_lcs_eol_attrs(attrs, 1, 10) endif call CloseWindow() *************** *** 370,375 **** --- 391,397 ---- call assert_notequal(attrs[6], attrs[7]) call assert_notequal(attrs0[2], attrs[2]) call assert_notequal(attrs0[6], attrs[6]) + call Check_lcs_eol_attrs(attrs, 1, 10) if IsColorable() " bg-color *************** *** 389,394 **** --- 411,417 ---- call assert_notequal(attrs[6], attrs[7]) call assert_notequal(attrs0[2], attrs[2]) call assert_notequal(attrs0[7], attrs[7]) + call Check_lcs_eol_attrs(attrs, 1, 10) endif sign unplace 1 *************** *** 431,436 **** --- 454,460 ---- call assert_notequal(attrs0[2], attrs[2]) call assert_notequal(attrs0[3], attrs[3]) call assert_notequal(attrs0[6], attrs[6]) + call Check_lcs_eol_attrs(attrs, 2, 10) if IsColorable() " bg-color *************** *** 455,460 **** --- 479,485 ---- call assert_notequal(attrs0[2], attrs[2]) call assert_notequal(attrs0[3], attrs[3]) call assert_notequal(attrs0[7], attrs[7]) + call Check_lcs_eol_attrs(attrs, 2, 10) endif call CloseWindow() *************** *** 484,489 **** --- 509,515 ---- call assert_notequal(attrs[0], attrs[2]) call assert_notequal(attrs[0], attrs[6]) call assert_notequal(attrs[2], attrs[6]) + call Check_lcs_eol_attrs(attrs, 1, 10) bwipe! diffoff *** ../vim-8.0.1168/src/version.c 2017-09-30 21:23:51.679049834 +0200 --- src/version.c 2017-10-01 14:32:46.046156671 +0200 *************** *** 763,764 **** --- 763,766 ---- { /* Add new patch number below this line */ + /**/ + 1169, /**/ -- A man is incomplete until he's married ... and then he's finished! /// 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 ///