patch 8.0.1168: wrong highlighting with combination of match and 'cursorline'

Problem:    wrong highlighting with combination of match and 'cursorline'.
Solution:   Use "line_attr" when appropriate. (Ozaki Kiichi, closes #2111)
            But don't highlight more than one character.
diff --git a/src/testdir/view_util.vim b/src/testdir/view_util.vim
index eb92630..29ea073 100644
--- a/src/testdir/view_util.vim
+++ b/src/testdir/view_util.vim
@@ -1,5 +1,10 @@
 " Functions about view shared by several tests
 
+" Only load this script once.
+if exists('*ScreenLines')
+  finish
+endif
+
 " ScreenLines(lnum, width) or
 " ScreenLines([start, end], width)
 function! ScreenLines(lnum, width) abort
@@ -18,6 +23,22 @@
   return lines
 endfunction
 
+function! ScreenAttrs(lnum, width) abort
+  redraw!
+  if type(a:lnum) == v:t_list
+    let start = a:lnum[0]
+    let end = a:lnum[1]
+  else
+    let start = a:lnum
+    let end = a:lnum
+  endif
+  let attrs = []
+  for l in range(start, end)
+    let attrs += [map(range(1, a:width), 'screenattr(l, v:val)')]
+  endfor
+  return attrs
+endfunction
+
 function! NewWindow(height, width) abort
   exe a:height . 'new'
   exe a:width . 'vsp'