patch 8.1.1078: when 'listchars' is set a composing char on a space is wrong

Problem:    When 'listchars' is set a composing char on a space is wrong.
Solution:   Separate handling a non-breaking space and a space. (Yasuhiro
            Matsumoto, closes #4046)
diff --git a/src/testdir/test_listchars.vim b/src/testdir/test_listchars.vim
index 2870f2d..1e90856 100644
--- a/src/testdir/test_listchars.vim
+++ b/src/testdir/test_listchars.vim
@@ -113,3 +113,26 @@
   enew!
   set listchars& ff&
 endfunc
+
+func Test_listchars_composing()
+  enew!
+  let oldencoding=&encoding
+  set encoding=utf-8
+  set ff=unix
+  set list
+
+  set listchars=eol:$,space:_
+  call append(0, [
+        \ "  \u3099	 \u309A"
+        \ ])
+  let expected = [
+        \ "_ \u3099^I \u309A$"
+        \ ]
+  redraw!
+  call cursor(1, 1)
+  let got = ScreenLinesUtf8(1, virtcol('$'))
+  bw!
+  call assert_equal(expected, got)
+  let &encoding=oldencoding
+  set listchars& ff&
+endfunction