patch 9.1.0344: Cursor wrong after using setcellwidth() in terminal

Problem:  Cursor wrong after using setcellwidth() in terminal
          (mikoto2000)
Solution: output additional spaces, so the behaviour matches the GUI
          (mikoto2000)

fixes: #14539
closes: #14540

Signed-off-by: mikoto2000 <mikoto2000@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Fix CUI `setcellwidths` characters draw behavior to same GUI behavior.
diff --git a/src/testdir/test_utf8.vim b/src/testdir/test_utf8.vim
index df0abd3..3fd83cf 100644
--- a/src/testdir/test_utf8.vim
+++ b/src/testdir/test_utf8.vim
@@ -300,6 +300,28 @@
   call StopVimInTerminal(buf)
 endfunc
 
+" When `setcellwidth` is used on characters that are not targets of `ambiwidth`.
+func Test_setcellwidths_with_non_ambiwidth_character_dump()
+  CheckRunVimInTerminal
+
+  let lines =<< trim END
+      call setline(1, [repeat("\u279c", 60), repeat("\u279c", 60)])
+      set ambiwidth=single
+  END
+  call writefile(lines, 'XCellwidthsWithNonAmbiwidthCharacter', 'D')
+  let buf = RunVimInTerminal('-S XCellwidthsWithNonAmbiwidthCharacter', {'rows': 6, 'cols': 50})
+  call term_sendkeys(buf, ":call setcellwidths([[0x279c, 0x279c, 1]])\<CR>")
+  call term_sendkeys(buf, ":echo\<CR>")
+  call VerifyScreenDump(buf, 'Test_setcellwidths_with_non_ambiwidth_character_dump_1', {})
+
+  call term_sendkeys(buf, ":call setcellwidths([[0x279c, 0x279c, 2]])\<CR>")
+  call term_sendkeys(buf, ":echo\<CR>")
+  call VerifyScreenDump(buf, 'Test_setcellwidths_with_non_ambiwidth_character_dump_2', {})
+
+  call StopVimInTerminal(buf)
+endfunc
+
+
 " For some reason this test causes Test_customlist_completion() to fail on CI,
 " so run it as the last test.
 func Test_zz_ambiwidth_hl_dump()
@@ -321,7 +343,6 @@
   call term_sendkeys(buf, ":echo\<CR>")
   call VerifyScreenDump(buf, 'Test_ambiwidth_hl_dump_1', {})
 
-  if 0 " Enable after #14539 is fixed
   call term_sendkeys(buf, ":call setcellwidths([[0x2103, 0x2103, 2]])\<CR>")
   call term_sendkeys(buf, ":echo\<CR>")
   call VerifyScreenDump(buf, 'Test_ambiwidth_hl_dump_2', {})
@@ -329,7 +350,6 @@
   call term_sendkeys(buf, ":call setcellwidths([[0x2103, 0x2103, 1]])\<CR>")
   call term_sendkeys(buf, ":echo\<CR>")
   call VerifyScreenDump(buf, 'Test_ambiwidth_hl_dump_1', {})
-  endif
 
   call StopVimInTerminal(buf)
 endfunc