patch 8.0.1652: term_dumpwrite() does not output composing characters

Problem:    term_dumpwrite() does not output composing characters.
Solution:   Use the cell index.
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 5e817de..d0ef325 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -978,6 +978,28 @@
   call assert_equal(':popup PopUp                                   :', trim(getline(a:off + 20)))
 endfunc
 
+func Test_terminal_dumpwrite_composing()
+  if !CanRunVimInTerminal()
+    return
+  endif
+  let save_enc = &encoding
+  set encoding=utf-8
+  call assert_equal(1, winnr('$'))
+
+  let text = " a\u0300 e\u0302 o\u0308"
+  call writefile([text], 'Xcomposing')
+  let buf = RunVimInTerminal('Xcomposing', {})
+  call WaitFor({-> term_getline(buf, 1) =~ text})
+  call term_dumpwrite(buf, 'Xdump')
+  let dumpline = readfile('Xdump')[0]
+  call assert_match('|à| |ê| |ö', dumpline)
+
+  call StopVimInTerminal(buf)
+  call delete('Xcomposing')
+  call delete('Xdump')
+  let &encoding = save_enc
+endfunc
+
 " just testing basic functionality.
 func Test_terminal_dumpload()
   call assert_equal(1, winnr('$'))