mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
clipboard: setreg("*") with clipboard=unnamed #9954
Helped-by: Björn Linse <bjorn.linse@gmail.com> fix #5646
This commit is contained in:
parent
c76c798bf6
commit
8aca932aa0
@ -5616,6 +5616,9 @@ static yankreg_T *adjust_clipboard_name(int *name, bool quiet, bool writing)
|
||||
|
||||
if (explicit_cb_reg) {
|
||||
target = &y_regs[*name == '*' ? STAR_REGISTER : PLUS_REGISTER];
|
||||
if (writing && (cb_flags & (*name == '*' ? CB_UNNAMED : CB_UNNAMEDPLUS))) {
|
||||
clipboard_needs_update = false;
|
||||
}
|
||||
goto end;
|
||||
} else { // unnamed register: "implicit" clipboard
|
||||
if (writing && clipboard_delay_update) {
|
||||
|
@ -236,7 +236,7 @@ describe('clipboard', function()
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('clipboard', function()
|
||||
describe('clipboard (with fake clipboard.vim)', function()
|
||||
local function reset(...)
|
||||
clear('--cmd', 'let &rtp = "test/functional/fixtures,".&rtp', ...)
|
||||
end
|
||||
@ -664,4 +664,20 @@ describe('clipboard', function()
|
||||
the a sourcetarget]])
|
||||
end)
|
||||
|
||||
it('setreg("*") with clipboard=unnamed #5646', function()
|
||||
source([=[
|
||||
function! Paste_without_yank(direction) range
|
||||
let [reg_save,regtype_save] = [getreg('*'), getregtype('*')]
|
||||
normal! gvp
|
||||
call setreg('*', reg_save, regtype_save)
|
||||
endfunction
|
||||
xnoremap p :call Paste_without_yank('p')<CR>
|
||||
set clipboard=unnamed
|
||||
]=])
|
||||
insert('some words')
|
||||
feed('gg0yiw')
|
||||
feed('wviwp')
|
||||
expect('some some')
|
||||
eq('some', eval('getreg("*")'))
|
||||
end)
|
||||
end)
|
||||
|
Loading…
Reference in New Issue
Block a user