mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.2.1039: cannot put NUL byte on clipboard
Problem: Cannot put NUL byte on clipboard. Solution: Use the text length. (Christian Brabandt, closes #6312, closes #6149)
This commit is contained in:
@@ -641,4 +641,22 @@ func Test_execute_reg_as_ex_cmd()
|
|||||||
call assert_equal(repeat('abcdefghijklmnopqrstuvwxyz', 312), str)
|
call assert_equal(repeat('abcdefghijklmnopqrstuvwxyz', 312), str)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for clipboard registers with ASCII NUL
|
||||||
|
func Test_clipboard_nul()
|
||||||
|
CheckFeature clipboard_working
|
||||||
|
new
|
||||||
|
|
||||||
|
" Test for putting ASCII NUL into the clipboard
|
||||||
|
set clipboard=unnamed
|
||||||
|
call append(0, "\ntest")
|
||||||
|
normal ggyyp
|
||||||
|
call assert_equal("^@test^@", strtrans(getreg('*')))
|
||||||
|
call assert_equal(getline(1), getline(2))
|
||||||
|
let b = split(execute(":reg *"), "\n")
|
||||||
|
call assert_match('"\*\s*\^@test\^J',b[1])
|
||||||
|
|
||||||
|
set clipboard&vim
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -754,6 +754,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 */
|
||||||
|
/**/
|
||||||
|
1039,
|
||||||
/**/
|
/**/
|
||||||
1038,
|
1038,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -422,7 +422,7 @@ clip_mch_request_selection(Clipboard_T *cbd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (str != NULL && *str != NUL)
|
if (str != NULL && metadata.txtlen != 0)
|
||||||
{
|
{
|
||||||
char_u *temp_clipboard;
|
char_u *temp_clipboard;
|
||||||
|
|
||||||
@@ -543,7 +543,7 @@ clip_mch_set_selection(Clipboard_T *cbd)
|
|||||||
|
|
||||||
if (lpszMem)
|
if (lpszMem)
|
||||||
{
|
{
|
||||||
vim_strncpy((char_u *)lpszMem, str, metadata.txtlen);
|
mch_memmove((char_u *)lpszMem, str, metadata.txtlen);
|
||||||
GlobalUnlock(hMem);
|
GlobalUnlock(hMem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user