mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.0.1652: term_dumpwrite() does not output composing characters
Problem: term_dumpwrite() does not output composing characters. Solution: Use the cell index.
This commit is contained in:
parent
0751f51a5b
commit
f06b0b6c8f
@ -3573,7 +3573,7 @@ f_term_dumpwrite(typval_T *argvars, typval_T *rettv UNUSED)
|
|||||||
for (i = 0; i < VTERM_MAX_CHARS_PER_CELL
|
for (i = 0; i < VTERM_MAX_CHARS_PER_CELL
|
||||||
&& cell.chars[i] != NUL; ++i)
|
&& cell.chars[i] != NUL; ++i)
|
||||||
{
|
{
|
||||||
len = utf_char2bytes(cell.chars[0], charbuf);
|
len = utf_char2bytes(cell.chars[i], charbuf);
|
||||||
fwrite(charbuf, len, 1, fd);
|
fwrite(charbuf, len, 1, fd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -978,6 +978,28 @@ func Check_dump01(off)
|
|||||||
call assert_equal(':popup PopUp :', trim(getline(a:off + 20)))
|
call assert_equal(':popup PopUp :', trim(getline(a:off + 20)))
|
||||||
endfunc
|
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.
|
" just testing basic functionality.
|
||||||
func Test_terminal_dumpload()
|
func Test_terminal_dumpload()
|
||||||
call assert_equal(1, winnr('$'))
|
call assert_equal(1, winnr('$'))
|
||||||
|
@ -762,6 +762,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1652,
|
||||||
/**/
|
/**/
|
||||||
1651,
|
1651,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user